summaryrefslogtreecommitdiffstats
path: root/java/sca/contrib/modules/interface
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/META-INF/MANIFEST.MF50
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/pom.xml274
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BaseBeanGenerator.java539
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java280
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGenerator.java147
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedClassLoader.java69
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java143
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java370
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java379
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java238
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java27
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java40
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java40
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGeneratorTestCase.java62
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java119
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JavaReflectionHelperTestCase.java48
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyException.java62
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java52
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestGenericClass.java40
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestInterface.java66
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGeneratorTestCase.java79
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/Stock.wsdl142
-rw-r--r--java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/StockExceptionTest.wsdl149
-rw-r--r--java/sca/contrib/modules/interface-java-xml/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface-java-xml/META-INF/MANIFEST.MF27
-rw-r--r--java/sca/contrib/modules/interface-java-xml/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface-java-xml/pom.xml83
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java37
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java193
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor19
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/main/resources/interface-javaxml-validation-messages.properties22
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java100
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java83
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite53
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorComponent.constrainingType34
-rw-r--r--java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType31
-rw-r--r--java/sca/contrib/modules/interface-java/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface-java/META-INF/MANIFEST.MF38
-rw-r--r--java/sca/contrib/modules/interface-java/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface-java/pom.xml82
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java99
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java87
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java32
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java82
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java57
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java39
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java84
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java111
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java258
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java173
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java83
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java159
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java39
-rw-r--r--java/sca/contrib/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory18
-rw-r--r--java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java308
-rw-r--r--java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java121
-rw-r--r--java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/ConversationalIntrospectionTestCase.java98
-rw-r--r--java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java107
-rw-r--r--java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java108
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/pom.xml95
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java140
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELPartnerLinkTypeExt.java79
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLConstants.java40
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java230
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java252
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java487
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor19
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor19
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver18
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties24
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java68
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLInterfaceIntrospectorTestCase.java83
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java117
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLPolicyAnnotatedInterfaceIntrospectorTestCase.java87
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WrapperStyleOperationTestCase.java70
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java97
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessorTestCase.java86
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java104
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WriteTestCase.java83
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XMLDocumentHelperTestCase.java53
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite55
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorComponent.constrainingType36
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorImpl.componentType33
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/example.wsdl26
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/invalid-stockquote.wsdl58
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/ipo.xsd136
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/stockquote.wsdl58
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.wsdl45
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.xsd33
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test2.wsdl63
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/unwrapped-stockquote.wsdl76
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/policy/stockquote_policy.wsdl62
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-interface.wsdl67
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-service.wsdl49
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/greeting.xsd29
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/helloworld.xsd22
-rw-r--r--java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/name.xsd29
-rw-r--r--java/sca/contrib/modules/interface-wsdl/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface-wsdl/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface-wsdl/pom.xml103
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java35
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java140
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLFactory.java70
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterface.java67
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterfaceContract.java43
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java54
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLOperation.java40
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/InvalidWSDLException.java35
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java289
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java75
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceContractImpl.java47
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceImpl.java99
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java159
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java61
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationImpl.java81
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java602
-rw-r--r--java/sca/contrib/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory18
-rw-r--r--java/sca/contrib/modules/interface/LICENSE205
-rw-r--r--java/sca/contrib/modules/interface/META-INF/MANIFEST.MF27
-rw-r--r--java/sca/contrib/modules/interface/NOTICE6
-rw-r--r--java/sca/contrib/modules/interface/pom.xml57
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/ConversationSequence.java29
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java119
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java62
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java69
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java95
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java81
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java115
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidCallbackException.java34
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidInterfaceException.java41
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidOperationException.java42
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java203
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/OverloadedOperationException.java45
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java219
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractImpl.java128
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java303
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java296
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java339
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/ElementInfo.java114
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java82
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java143
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/TypeInfo.java100
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java190
-rw-r--r--java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/XMLType.java152
-rw-r--r--java/sca/contrib/modules/interface/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.InterfaceContractMapper18
-rw-r--r--java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java380
-rw-r--r--java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java69
151 files changed, 0 insertions, 16244 deletions
diff --git a/java/sca/contrib/modules/interface-java-jaxws/LICENSE b/java/sca/contrib/modules/interface-java-jaxws/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface-java-jaxws/META-INF/MANIFEST.MF b/java/sca/contrib/modules/interface-java-jaxws/META-INF/MANIFEST.MF
deleted file mode 100644
index a47840881d..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,50 +0,0 @@
-Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.interfacedef.java.jaxws;uses:="
- org.apache.tuscany.sca.databinding,org.apache.tuscany.sca.interfacede
- f.util,org.objectweb.asm,javax.jws,javax.xml.namespace,javax.jws.soap
- ,org.apache.tuscany.sca.interfacedef.java.impl,org.apache.tuscany.sca
- .databinding.annotation,org.oasisopen.sca,javax.xml.bind.annotation.adapte
- rs,org.apache.tuscany.sca.interfacedef.java,org.apache.tuscany.sca.in
- terfacedef,org.apache.tuscany.sca.interfacedef.java.introspect,javax.
- xml.bind.annotation,org.apache.tuscany.sca.databinding.jaxb,org.apach
- e.tuscany.sca.interfacedef.impl,javax.xml.ws";version="2.0"
-Tool: Bnd-0.0.255
-Bundle-Name: Apache Tuscany Java Interface for JAXWS
-Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0
-Bnd-LastModified: 1225397232156
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany Java Interface for JAXWS
-Import-Package: javax.jws,
- javax.jws.soap,
- javax.xml.bind;resolution:=optional,
- javax.xml.bind.annotation,
- javax.xml.bind.annotation.adapters,
- javax.xml.namespace,
- javax.xml.transform;resolution:=optional,
- javax.xml.transform.stream;resolution:=optional,
- javax.xml.ws,
-
- org.apache.tuscany.sca.assembly;version="2.0.0",
- org.apache.tuscany.sca.databinding;version="2.0",
- org.apache.tuscany.sca.databinding.annotation;version="2.0",
- org.apache.tuscany.sca.databinding.javabeans;version="2.0.0",
- org.apache.tuscany.sca.databinding.jaxb;version="2.0",
- org.apache.tuscany.sca.interfacedef;version="2.0",
- org.apache.tuscany.sca.interfacedef.impl;version="2.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0",
- org.apache.tuscany.sca.interfacedef.java.impl;version="2.0",
- org.apache.tuscany.sca.interfacedef.java.introspect;version="2.0",
- org.apache.tuscany.sca.interfacedef.java.jaxws;version="2.0",
- org.apache.tuscany.sca.interfacedef.util;version="2.0",
- org.apache.tuscany.sca.policy;version="2.0.0",
-
- org.objectweb.asm;version="3.1",
- org.objectweb.asm.util;version="3.1";resolution:=optional,
- org.oasisopen.sca;version="2.0",
- org.oasisopen.sca.annotation;version="2.0";resolution:=optional
-Bundle-SymbolicName: org.apache.tuscany.sca.interface.java.jaxws
-Bundle-DocURL: http://www.apache.org/
-
diff --git a/java/sca/contrib/modules/interface-java-jaxws/NOTICE b/java/sca/contrib/modules/interface-java-jaxws/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface-java-jaxws/pom.xml b/java/sca/contrib/modules/interface-java-jaxws/pom.xml
deleted file mode 100644
index 1a38de41ed..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/pom.xml
+++ /dev/null
@@ -1,274 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface-java-jaxws</artifactId>
- <name>Apache Tuscany Java Interface for JAXWS</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-core-spi</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-databinding-jaxb</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface-java-xml</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.5</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.xml.ws</groupId>
- <artifactId>jaxws-api</artifactId>
- <version>2.1</version>
- <exclusions>
- <exclusion>
- <groupId>javax.xml.soap</groupId>
- <artifactId>saaj-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-all</artifactId>
- <version>3.1</version>
- <scope>compile</scope>
- </dependency>
-
- </dependencies>
-
- <repositories>
- <repository>
- <id>java.net</id>
- <name>java.net Maven 1.x Repository</name>
- <url>http://download.java.net/maven/1</url>
- <layout>legacy</layout>
- </repository>
- <repository>
- <id>java.net2</id>
- <name>java.net Maven 2.x Repository</name>
- <url>http://download.java.net/maven/2</url>
- </repository>
- </repositories>
-
- <pluginRepositories>
- <pluginRepository>
- <id>java.net2</id>
- <name>java.net Maven 2.x Repository</name>
- <url>http://download.java.net/maven/2</url>
- </pluginRepository>
- </pluginRepositories>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>-Djava.endorsed.dirs=target/endorsed</argLine>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>javax.xml.ws</groupId>
- <artifactId>jaxws-api</artifactId>
- <version>2.1</version>
- <type>jar</type>
- </artifactItem>
- <artifactItem>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.1</version>
- <type>jar</type>
- </artifactItem>
- </artifactItems>
- <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>add-test-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>target/jaxws-source</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>jaxws-maven-plugin</artifactId>
- <version>1.9</version>
- <executions>
- <execution>
- <id>wsimport</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>wsimport</goal>
- </goals>
- <configuration>
- <packageName>com.example.stock</packageName>
- <wsdlDirectory>${basedir}/src/test/resources/wsdl</wsdlDirectory>
- <wsdlFiles>
- <wsdlFile>StockExceptionTest.wsdl</wsdlFile>
- </wsdlFiles>
- <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
- <verbose>false</verbose>
- <xnocompile>true</xnocompile>
- </configuration>
- </execution>
-
- <!--
- <execution>
- <id>wsgen</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>wsgen-test</goal>
- </goals>
- <configuration>
- <sei>org.apache.tuscany.sca.interfacedef.java.jaxws.MyServiceImpl</sei>
- <genWsdl>true</genWsdl>
- <keep>true</keep>
- <resourceDestDir>${project.build.directory}/jaxws-source</resourceDestDir>
- <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
- </configuration>
- </execution>
- -->
- </executions>
-
- </plugin>
-
- <!--
- wsimport cannot handle WSDL files without a service/binding element.
- CXF wsdl2java plugin does support that. I had to override the default
- value of wsdlRoot/testWsdlRoot to a non-existent file to avoid NPE -->
- <!--
- <plugin>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-codegen-plugin</artifactId>
- <version>2.1</version>
- <executions>
- <execution>
- <id>generate-sources</id>
- <phase>generate-sources</phase>
-
- <configuration>
- <sourceRoot>${basedir}/target/jaxws-source</sourceRoot>
- <wsdlRoot>NONE</wsdlRoot>
- <testWsdlRoot>NONE</testWsdlRoot>
- <wsdlOptions>
- <wsdlOption>
- <wsdl>${basedir}/src/test/resources/wsdl/Stock.wsdl</wsdl>
- <outputDir>${basedir}/target/jaxws-source</outputDir>
- <packagenames>
- <packagename>com.example.stock.cxf</packagename>
- </packagenames>
- </wsdlOption>
- </wsdlOptions>
- </configuration>
- <goals>
- <goal>wsdl2java</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- -->
-
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface.java.jaxws</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef.java.jaxws*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>default-tools.jar</id>
- <activation>
- <property>
- <name>java.vendor</name>
- <value>Sun Microsystems Inc.</value>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>com.sun</groupId>
- <artifactId>tools</artifactId>
- <version>1.5.0</version>
- <scope>system</scope>
- <systemPath>${java.home}/../lib/tools.jar</systemPath>
- </dependency>
- </dependencies>
- </profile>
- </profiles>
-
-</project>
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BaseBeanGenerator.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BaseBeanGenerator.java
deleted file mode 100644
index 4cf56fed0c..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/BaseBeanGenerator.java
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import javax.xml.bind.annotation.XmlAttachmentRef;
-import javax.xml.bind.annotation.XmlList;
-import javax.xml.bind.annotation.XmlMimeType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import javax.xml.ws.Holder;
-
-import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
-public abstract class BaseBeanGenerator implements Opcodes {
- private static final Map<String, String> COLLECTION_CLASSES = new HashMap<String, String>();
- static {
- COLLECTION_CLASSES.put("Ljava/util/Collection;", "java/util/ArrayList");
- COLLECTION_CLASSES.put("Ljava/util/List;", "java/util/ArrayList");
- COLLECTION_CLASSES.put("Ljava/util/Set;", "java/util/HashSet");
- COLLECTION_CLASSES.put("Ljava/util/Queue;", "java/util/LinkedList");
- }
- private final static Class[] KNOWN_JAXB_ANNOTATIONS =
- {XmlAttachmentRef.class, XmlMimeType.class, XmlJavaTypeAdapter.class, XmlList.class};
- private static final Map<String, String> JAVA_KEYWORDS = new HashMap<String, String>();
-
- static {
- JAVA_KEYWORDS.put("abstract", "_abstract");
- JAVA_KEYWORDS.put("assert", "_assert");
- JAVA_KEYWORDS.put("boolean", "_boolean");
- JAVA_KEYWORDS.put("break", "_break");
- JAVA_KEYWORDS.put("byte", "_byte");
- JAVA_KEYWORDS.put("case", "_case");
- JAVA_KEYWORDS.put("catch", "_catch");
- JAVA_KEYWORDS.put("char", "_char");
- JAVA_KEYWORDS.put("class", "_class");
- JAVA_KEYWORDS.put("const", "_const");
- JAVA_KEYWORDS.put("continue", "_continue");
- JAVA_KEYWORDS.put("default", "_default");
- JAVA_KEYWORDS.put("do", "_do");
- JAVA_KEYWORDS.put("double", "_double");
- JAVA_KEYWORDS.put("else", "_else");
- JAVA_KEYWORDS.put("extends", "_extends");
- JAVA_KEYWORDS.put("false", "_false");
- JAVA_KEYWORDS.put("final", "_final");
- JAVA_KEYWORDS.put("finally", "_finally");
- JAVA_KEYWORDS.put("float", "_float");
- JAVA_KEYWORDS.put("for", "_for");
- JAVA_KEYWORDS.put("goto", "_goto");
- JAVA_KEYWORDS.put("if", "_if");
- JAVA_KEYWORDS.put("implements", "_implements");
- JAVA_KEYWORDS.put("import", "_import");
- JAVA_KEYWORDS.put("instanceof", "_instanceof");
- JAVA_KEYWORDS.put("int", "_int");
- JAVA_KEYWORDS.put("interface", "_interface");
- JAVA_KEYWORDS.put("long", "_long");
- JAVA_KEYWORDS.put("native", "_native");
- JAVA_KEYWORDS.put("new", "_new");
- JAVA_KEYWORDS.put("null", "_null");
- JAVA_KEYWORDS.put("package", "_package");
- JAVA_KEYWORDS.put("private", "_private");
- JAVA_KEYWORDS.put("protected", "_protected");
- JAVA_KEYWORDS.put("public", "_public");
- JAVA_KEYWORDS.put("return", "_return");
- JAVA_KEYWORDS.put("short", "_short");
- JAVA_KEYWORDS.put("static", "_static");
- JAVA_KEYWORDS.put("strictfp", "_strictfp");
- JAVA_KEYWORDS.put("super", "_super");
- JAVA_KEYWORDS.put("switch", "_switch");
- JAVA_KEYWORDS.put("synchronized", "_synchronized");
- JAVA_KEYWORDS.put("this", "_this");
- JAVA_KEYWORDS.put("throw", "_throw");
- JAVA_KEYWORDS.put("throws", "_throws");
- JAVA_KEYWORDS.put("transient", "_transient");
- JAVA_KEYWORDS.put("true", "_true");
- JAVA_KEYWORDS.put("try", "_try");
- JAVA_KEYWORDS.put("void", "_void");
- JAVA_KEYWORDS.put("volatile", "_volatile");
- JAVA_KEYWORDS.put("while", "_while");
- JAVA_KEYWORDS.put("enum", "_enum");
- }
-
- protected static final Map<Object, Class<?>> generatedClasses =
- Collections.synchronizedMap(new WeakHashMap<Object, Class<?>>());
-
- protected XMLAdapterExtensionPoint xmlAdapters;
-
- public byte[] defineClass(ClassWriter cw,
- String classDescriptor,
- String classSignature,
- String namespace,
- String name,
- BeanProperty[] properties) {
- // Declare the class
- declareClass(cw, classDescriptor);
-
- // Compute the propOrder
- String[] propOrder = null;
- if (properties != null && properties.length > 0) {
- int size = properties.length;
- propOrder = new String[size];
- for (int i = 0; i < size; i++) {
- propOrder[i] = getFieldName(properties[i].getName());
- }
- }
- // Annotate the class
- annotateClass(cw, name, namespace, propOrder);
-
- // Decalre the default constructor
- declareConstructor(cw, classSignature);
- if (properties != null) {
- for (BeanProperty p : properties) {
- boolean isElement = p.isElement() && (!Map.class.isAssignableFrom(p.getType()));
- String xmlAdapterClassSignature = null;
- if (xmlAdapters != null) {
- Class<?> adapterClass = xmlAdapters.getAdapter(p.getType());
- if (adapterClass != null) {
- xmlAdapterClassSignature = CodeGenerationHelper.getSignature(adapterClass);
- }
- }
- declareProperty(cw, classDescriptor, classSignature, p.getName(), p.getSignature(), p
- .getGenericSignature(), isElement, p.isNillable(), xmlAdapterClassSignature, p.getJaxbAnnotaions());
- }
- }
-
- // Close the generation
- cw.visitEnd();
- return cw.toByteArray();
- }
-
- protected static boolean isHolder(java.lang.reflect.Type type) {
- if (type instanceof ParameterizedType) {
- Class<?> cls = CodeGenerationHelper.getErasure(type);
- return cls == Holder.class;
- }
- return false;
- }
-
- protected static java.lang.reflect.Type getHolderValueType(java.lang.reflect.Type paramType) {
- if (paramType instanceof ParameterizedType) {
- ParameterizedType p = (ParameterizedType)paramType;
- Class<?> cls = CodeGenerationHelper.getErasure(p);
- if (cls == Holder.class) {
- return p.getActualTypeArguments()[0];
- }
- }
- return paramType;
- }
-
- protected void declareProperty(ClassWriter cw,
- String classDescriptor,
- String classSignature,
- String propName,
- String propClassSignature,
- String propTypeSignature,
- boolean isElement,
- boolean isNillable,
- String xmlAdapterClassSignature,
- List<Annotation> jaxbAnnotations) {
- if (propClassSignature.equals(propTypeSignature)) {
- propTypeSignature = null;
- }
- declareField(cw,
- propName,
- propClassSignature,
- propTypeSignature,
- isElement,
- isNillable,
- xmlAdapterClassSignature,
- jaxbAnnotations);
- decalreGetter(cw, classDescriptor, classSignature, propName, propClassSignature, propTypeSignature);
- declareSetter(cw, classDescriptor, classSignature, propName, propClassSignature, propTypeSignature);
- }
-
- protected String getFieldName(String propName) {
- String name = JAVA_KEYWORDS.get(propName);
- return name != null ? name : propName;
- }
-
- protected void declareField(ClassWriter cw,
- String propName,
- String propClassSignature,
- String propTypeSignature,
- boolean isElement,
- boolean isNillable,
- String xmlAdapterClassSignature,
- List<Annotation> jaxbAnnotations) {
- FieldVisitor fv;
- AnnotationVisitor av0;
- fv = cw.visitField(ACC_PROTECTED, getFieldName(propName), propClassSignature, propTypeSignature, null);
-
- // For Map property, we cannot have the XmlElement annotation
- if (isElement) {
- av0 = fv.visitAnnotation("Ljavax/xml/bind/annotation/XmlElement;", true);
- av0.visit("name", propName);
- av0.visit("namespace", "");
- if (isNillable) {
- av0.visit("nillable", Boolean.TRUE);
- }
- // FIXME:
- // av0.visit("required", Boolean.FALSE);
- av0.visitEnd();
- }
-
- if (xmlAdapterClassSignature != null) {
- av0 = fv.visitAnnotation("Ljavax/xml/bind/annotation/adapters/XmlJavaTypeAdapter;", true);
- av0.visit("value", org.objectweb.asm.Type.getType(xmlAdapterClassSignature));
- av0.visitEnd();
- }
-
- for (Annotation ann : jaxbAnnotations) {
- if (ann instanceof XmlMimeType) {
- AnnotationVisitor mime = fv.visitAnnotation("Ljavax/xml/bind/annotation/XmlMimeType;", true);
- mime.visit("value", ((XmlMimeType)ann).value());
- mime.visitEnd();
- } else if (ann instanceof XmlJavaTypeAdapter) {
- AnnotationVisitor ada = fv.visitAnnotation("Ljavax/xml/bind/annotation/XmlJavaTypeAdapter;", true);
- ada.visit("value", ((XmlJavaTypeAdapter)ann).value());
- ada.visit("type", ((XmlJavaTypeAdapter)ann).type());
- ada.visitEnd();
- } else if (ann instanceof XmlAttachmentRef) {
- AnnotationVisitor att = fv.visitAnnotation("Ljavax/xml/bind/annotation/XmlAttachmentRef;", true);
- att.visitEnd();
- } else if (ann instanceof XmlList) {
- AnnotationVisitor list = fv.visitAnnotation("Ljavax/xml/bind/annotation/XmlList;", true);
- list.visitEnd();
- }
- }
-
- fv.visitEnd();
- }
-
- protected void declareSetter(ClassWriter cw,
- String classDescriptor,
- String classSignature,
- String propName,
- String propClassSignature,
- String propTypeSignature) {
- if ("Ljava/util/List;".equals(propClassSignature)) {
- return;
- }
- MethodVisitor mv =
- cw.visitMethod(ACC_PUBLIC,
- "set" + capitalize(propName),
- "(" + propClassSignature + ")V",
- propTypeSignature == null ? null : "(" + propTypeSignature + ")V",
- null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- // mv.visitLineNumber(57, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitVarInsn(CodeGenerationHelper.getLoadOPCode(propClassSignature), 1);
- mv.visitFieldInsn(PUTFIELD, classDescriptor, getFieldName(propName), propClassSignature);
- Label l1 = new Label();
- mv.visitLabel(l1);
- // mv.visitLineNumber(58, l1);
- mv.visitInsn(RETURN);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLocalVariable("this", classSignature, null, l0, l2, 0);
- mv.visitLocalVariable(getFieldName(propName), propClassSignature, propTypeSignature, l0, l2, 1);
- mv.visitMaxs(3, 3);
- mv.visitEnd();
-
- }
-
- protected void decalreGetter(ClassWriter cw,
- String classDescriptor,
- String classSignature,
- String propName,
- String propClassSignature,
- String propTypeSignature) {
- String collectionImplClass = COLLECTION_CLASSES.get(propClassSignature);
- if (collectionImplClass != null) {
- decalreCollectionGetter(cw,
- classDescriptor,
- classSignature,
- propName,
- propClassSignature,
- propTypeSignature,
- collectionImplClass);
- return;
- }
-
- String getterName = ("Z".equals(propClassSignature) ? "is" : "get") + capitalize(propName);
- MethodVisitor mv =
- cw.visitMethod(ACC_PUBLIC, getterName, "()" + propClassSignature, propTypeSignature == null ? null
- : "()" + propTypeSignature, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- // mv.visitLineNumber(48, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(GETFIELD, classDescriptor, getFieldName(propName), propClassSignature);
- mv.visitInsn(CodeGenerationHelper.getReturnOPCode(propClassSignature));
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("this", classSignature, null, l0, l1, 0);
- mv.visitMaxs(2, 1);
- mv.visitEnd();
- }
-
- protected void decalreCollectionGetter(ClassWriter cw,
- String classDescriptor,
- String classSignature,
- String propName,
- String propClassSignature,
- String propTypeSignature,
- String collectionImplClass) {
- String getterName = "get" + capitalize(propName);
- String fieldName = getFieldName(propName);
- MethodVisitor mv =
- cw.visitMethod(ACC_PUBLIC, getterName, "()" + propClassSignature, propTypeSignature == null ? null
- : "()" + propTypeSignature, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- mv.visitLineNumber(63, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(GETFIELD, classDescriptor, fieldName, propClassSignature);
- Label l1 = new Label();
- mv.visitJumpInsn(IFNONNULL, l1);
- Label l2 = new Label();
- mv.visitLabel(l2);
- mv.visitLineNumber(64, l2);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitTypeInsn(NEW, collectionImplClass);
- mv.visitInsn(DUP);
- mv.visitMethodInsn(INVOKESPECIAL, collectionImplClass, "<init>", "()V");
- mv.visitFieldInsn(PUTFIELD, classDescriptor, fieldName, propClassSignature);
- mv.visitLabel(l1);
- mv.visitLineNumber(66, l1);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitFieldInsn(GETFIELD, classDescriptor, fieldName, propClassSignature);
- mv.visitInsn(ARETURN);
- Label l3 = new Label();
- mv.visitLabel(l3);
- mv.visitLocalVariable("this", classSignature, null, l0, l3, 0);
- mv.visitMaxs(3, 1);
- mv.visitEnd();
- }
-
- protected static String capitalize(String name) {
- if (name == null || name.length() == 0) {
- return name;
- } else {
- return Character.toUpperCase(name.charAt(0)) + name.substring(1);
- }
- }
-
- protected void declareConstructor(ClassWriter cw, String classSignature) {
- MethodVisitor mv;
- mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
- mv.visitCode();
- Label l0 = new Label();
- mv.visitLabel(l0);
- // mv.visitLineNumber(37, l0);
- mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
- mv.visitInsn(RETURN);
- Label l1 = new Label();
- mv.visitLabel(l1);
- mv.visitLocalVariable("this", classSignature, null, l0, l1, 0);
- mv.visitMaxs(1, 1);
- mv.visitEnd();
- }
-
- protected void declareClass(ClassWriter cw, String classDescriptor) {
- cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, classDescriptor, null, "java/lang/Object", null);
- }
-
- protected void annotateClass(ClassWriter cw, String name, String namespace, String[] propOrder) {
- AnnotationVisitor av0;
- // @XmlRootElement
- av0 = cw.visitAnnotation("Ljavax/xml/bind/annotation/XmlRootElement;", true);
- av0.visit("name", name);
- av0.visit("namespace", namespace);
- av0.visitEnd();
- // @XmlAccessorType
- av0 = cw.visitAnnotation("Ljavax/xml/bind/annotation/XmlAccessorType;", true);
- av0.visitEnum("value", "Ljavax/xml/bind/annotation/XmlAccessType;", "FIELD");
- av0.visitEnd();
- // @XmlType
- av0 = cw.visitAnnotation("Ljavax/xml/bind/annotation/XmlType;", true);
- av0.visit("name", name);
- av0.visit("namespace", namespace);
- if (propOrder != null) {
- AnnotationVisitor pv = av0.visitArray("propOrder");
- for (String p : propOrder) {
- pv.visit(null, p);
- }
- pv.visitEnd();
- }
- av0.visitEnd();
- }
-
- public Class<?> generate(String classDescriptor,
- String classSignature,
- String namespace,
- String name,
- BeanProperty[] properties,
- GeneratedClassLoader classLoader) {
- ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
- byte[] byteCode = defineClass(cw, classDescriptor, classSignature, namespace, name, properties);
- String className = classDescriptor.replace('/', '.');
- Class<?> generated = classLoader.getGeneratedClass(className, byteCode);
- return generated;
- }
-
- public static class BeanProperty {
- private Class<?> type;
- private String namespace;
- private String name;
- private String signature;
- private String genericSignature;
- private List<Annotation> jaxbAnnotaions = new ArrayList<Annotation>();
- private boolean element;
- private boolean nillable;
-
- public BeanProperty(String namespace, String name, Class<?> javaClass, Type type, boolean isElement) {
- super();
- this.namespace = namespace;
- this.name = name;
- this.signature = CodeGenerationHelper.getJAXWSSignature(javaClass);
- this.type = javaClass;
- this.genericSignature = CodeGenerationHelper.getJAXWSSignature(type);
- this.element = isElement;
- // FIXME: How to test nillable?
- // this.nillable = (type instanceof GenericArrayType) || Collection.class.isAssignableFrom(javaClass) || javaClass.isArray();
- // TUSCANY-2389: Set the nillable consistent with what wsgen produces
- this.nillable = javaClass.isArray();
- }
-
- public String getName() {
- return name;
- }
-
- public String getSignature() {
- return signature;
- }
-
- public String getGenericSignature() {
- return genericSignature;
- }
-
- public Class<?> getType() {
- return type;
- }
-
- public List<Annotation> getJaxbAnnotaions() {
- return jaxbAnnotaions;
- }
-
- public String getNamespace() {
- return namespace;
- }
-
- public boolean isElement() {
- return element;
- }
-
- public boolean isNillable() {
- return nillable;
- }
- }
-
- public XMLAdapterExtensionPoint getXmlAdapters() {
- return xmlAdapters;
- }
-
- public void setXmlAdapters(XMLAdapterExtensionPoint xmlAdapters) {
- this.xmlAdapters = xmlAdapters;
- }
-
- protected static <T extends Annotation> T findAnnotation(Annotation[] anns, Class<T> annotationClass) {
- for (Annotation a : anns) {
- if (a.annotationType() == annotationClass) {
- return annotationClass.cast(a);
- }
- }
- return null;
- }
-
- protected static List<Annotation> findJAXBAnnotations(Annotation[] anns) {
- List<Annotation> jaxbAnnotation = new ArrayList<Annotation>();
- for (Class<? extends Annotation> c : KNOWN_JAXB_ANNOTATIONS) {
- Annotation a = findAnnotation(anns, c);
- if (a != null) {
- jaxbAnnotation.add(a);
- }
- }
- return jaxbAnnotation;
- }
-
- protected List<Annotation> findJAXBAnnotations(Method method) {
- List<Annotation> anns = new ArrayList<Annotation>();
- for (Class<? extends Annotation> c : KNOWN_JAXB_ANNOTATIONS) {
- Annotation ann = method.getAnnotation(c);
- if (ann != null) {
- anns.add(ann);
- }
- }
- return anns;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
deleted file mode 100644
index b05715b54e..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.GenericArrayType;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.lang.reflect.WildcardType;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.objectweb.asm.Opcodes;
-
-/**
- * @version $Rev$ $Date$
- */
-public class CodeGenerationHelper {
- /**
- * @param type
- * @return
- */
- public static Class<?> getErasure(Type type) {
- if (type instanceof Class) {
- return (Class<?>)type;
- } else if (type instanceof GenericArrayType) {
- GenericArrayType arrayType = (GenericArrayType)type;
- Class<?> componentType = getErasure(arrayType.getGenericComponentType());
- return Array.newInstance(componentType, 0).getClass();
- } else if (type instanceof ParameterizedType) {
- ParameterizedType pType = (ParameterizedType)type;
- return getErasure(pType.getRawType());
- } else if (type instanceof WildcardType) {
- WildcardType wType = (WildcardType)type;
- Type[] types = wType.getUpperBounds();
- if (types.length == 0) {
- return Object.class;
- }
- return getErasure(types[0]);
- } else if (type instanceof TypeVariable) {
- TypeVariable<?> var = (TypeVariable<?>)type;
- Type[] types = var.getBounds();
- if (types.length == 0) {
- return Object.class;
- }
- return getErasure(types[0]);
- }
- return null;
- }
-
- /**
- * @param type
- * @return
- */
- public static String getJAXWSSignature(Type type) {
- Class<?> cls = getErasure(type);
- if (Collection.class.isAssignableFrom(cls) && (type instanceof ParameterizedType)) {
- ParameterizedType pType = (ParameterizedType)type;
- Type p = pType.getActualTypeArguments()[0];
- StringBuffer sb = new StringBuffer();
- sb.append(getSignature(cls));
- sb.deleteCharAt(sb.length() - 1); // Remove ;
- sb.append('<').append(getSignature(getErasure(p))).append(">;");
- return sb.toString();
- } else if (Map.class.isAssignableFrom(cls) && (type instanceof ParameterizedType)) {
- ParameterizedType pType = (ParameterizedType)type;
- Type key = pType.getActualTypeArguments()[0];
- Type value = pType.getActualTypeArguments()[1];
- StringBuffer sb = new StringBuffer();
- sb.append(getSignature(cls));
- sb.deleteCharAt(sb.length() - 1); // Remove ;
- sb.append('<').append(getSignature(getErasure(key))).append(getSignature(getErasure(value))).append(">;");
- return sb.toString();
- } else {
- return getSignature(cls);
- }
- }
-
- /**
- * @param type
- * @return
- */
- public static String getSignature(Type type) {
- if (!(type instanceof Class)) {
- if (type instanceof ParameterizedType) {
- ParameterizedType pType = (ParameterizedType)type;
- StringBuffer sb = new StringBuffer();
- String rawType = getSignature(pType.getRawType());
- sb.append(rawType.substring(0, rawType.length() - 1));
- sb.append('<');
- for (Type t : pType.getActualTypeArguments()) {
- String argType = getSignature(t);
- sb.append(argType);
- }
- sb.append('>');
- sb.append(rawType.substring(rawType.length() - 1));
- return sb.toString();
- }
- if (type instanceof TypeVariable) {
- return "T" + ((TypeVariable<?>)type).getName() + ";";
- }
- if (type instanceof GenericArrayType) {
- GenericArrayType arrayType = (GenericArrayType)type;
- return "[" + getSignature(arrayType.getGenericComponentType());
- }
- if (type instanceof WildcardType) {
- WildcardType wType = (WildcardType)type;
- Type[] types = wType.getUpperBounds();
- StringBuffer sb = new StringBuffer();
- if (types.length == 0 || !(types.length == 1 && types[0] == Object.class)) {
- sb.append('+');
- for (Type t : types) {
- sb.append(getSignature(t));
- }
- }
- types = wType.getLowerBounds();
- if (types.length != 0) {
- sb.append('-');
- for (Type t : wType.getLowerBounds()) {
- sb.append(getSignature(t));
- }
- }
- if (sb.length() == 0) {
- return "*";
- }
- return sb.toString();
- }
- }
- Class<?> cls = (Class<?>)type;
- return org.objectweb.asm.Type.getDescriptor(cls);
- }
-
- /**
- * Get the actual type arguments a child class has used to extend a generic base class.
- *
- * @param baseClass the base class
- * @param childClass the child class
- * @return a list of the raw classes for the actual type arguments.
- */
- public static <T> List<Class<?>> resovleTypeArguments(Class<T> baseClass, Class<? extends T> childClass) {
- Map<Type, Type> resolvedTypes = new HashMap<Type, Type>();
- Type type = childClass;
- // start walking up the inheritance hierarchy until we hit baseClass
- while (!getErasure(type).equals(baseClass)) {
- if (type instanceof Class) {
- // there is no useful information for us in raw types, so just keep going.
- type = ((Class<?>)type).getGenericSuperclass();
- } else {
- ParameterizedType parameterizedType = (ParameterizedType)type;
- Class<?> rawType = getErasure(parameterizedType.getRawType());
-
- Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
- TypeVariable<?>[] typeParameters = rawType.getTypeParameters();
- for (int i = 0; i < actualTypeArguments.length; i++) {
- resolvedTypes.put(typeParameters[i], actualTypeArguments[i]);
- }
-
- if (!rawType.equals(baseClass)) {
- type = rawType.getGenericSuperclass();
- }
- }
- }
-
- // finally, for each actual type argument provided to baseClass, determine (if possible)
- // the raw class for that type argument.
- Type[] actualTypeArguments;
- if (type instanceof Class) {
- actualTypeArguments = ((Class<?>)type).getTypeParameters();
- } else {
- actualTypeArguments = ((ParameterizedType)type).getActualTypeArguments();
- }
- List<Class<?>> typeArgumentsAsClasses = new ArrayList<Class<?>>();
- // resolve types by chasing down type variables.
- for (Type baseType : actualTypeArguments) {
- while (resolvedTypes.containsKey(baseType)) {
- baseType = resolvedTypes.get(baseType);
- }
- typeArgumentsAsClasses.add(getErasure(baseType));
- }
- return typeArgumentsAsClasses;
- }
-
- /*
- signatures.put(boolean.class, "Z");
- signatures.put(byte.class, "B");
- signatures.put(char.class, "C");
- signatures.put(short.class, "S");
- signatures.put(int.class, "I");
- signatures.put(long.class, "J");
- signatures.put(float.class, "F");
- signatures.put(double.class, "D");
- */
- public static int getLoadOPCode(String signature) {
- if ("Z".equals(signature) || "B".equals(signature)
- || "C".equals(signature)
- || "S".equals(signature)
- || "I".equals(signature)) {
- return Opcodes.ILOAD;
- }
-
- if ("J".equals(signature)) {
- return Opcodes.LLOAD;
- }
-
- if ("F".equals(signature)) {
- return Opcodes.FLOAD;
- }
-
- if ("D".equals(signature)) {
- return Opcodes.DLOAD;
- }
-
- return Opcodes.ALOAD;
-
- }
-
- public static int getReturnOPCode(String signature) {
- if ("Z".equals(signature) || "B".equals(signature)
- || "C".equals(signature)
- || "S".equals(signature)
- || "I".equals(signature)) {
- return Opcodes.IRETURN;
- }
-
- if ("J".equals(signature)) {
- return Opcodes.LRETURN;
- }
-
- if ("F".equals(signature)) {
- return Opcodes.FRETURN;
- }
-
- if ("D".equals(signature)) {
- return Opcodes.DRETURN;
- }
- if ("V".equals(signature)) {
- return Opcodes.RETURN;
- }
-
- return Opcodes.ARETURN;
-
- }
-
- /**
- * Get the package prefix for generated JAXWS artifacts
- * @param cls
- * @return
- */
- public static String getPackagePrefix(Class<?> cls) {
- String name = cls.getName();
- int index = name.lastIndexOf('.');
- if (index == -1) {
- return "jaxws.";
- } else {
- return name.substring(0, index) + ".jaxws.";
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGenerator.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGenerator.java
deleted file mode 100644
index 40fbefa3ed..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGenerator.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.WebFault;
-
-import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil;
-import org.objectweb.asm.ClassWriter;
-
-public class FaultBeanGenerator extends BaseBeanGenerator {
- public FaultBeanGenerator() {
- super();
- }
-
- protected BeanProperty[] getProperties(Class<? extends Throwable> exceptionClass) {
- BeanInfo beanInfo;
- try {
- beanInfo = Introspector.getBeanInfo(exceptionClass);
- } catch (IntrospectionException e) {
- throw new IllegalArgumentException(e);
- }
- List<BeanProperty> props = new ArrayList<BeanProperty>();
- for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
- if (pd.getReadMethod() != null) {
- String name = pd.getReadMethod().getName();
- if ("getClass".equals(name) || "getStackTrace".equals(name)
- || "getCause".equals(name)
- || "getLocalizedMessage".equals(name)) {
- continue;
- }
- // Add the field
- String field = pd.getName();
- Method getter = pd.getReadMethod();
- props.add(new BeanProperty("", field, getter.getReturnType(), getter.getGenericReturnType(), false));
- }
- }
- Collections.sort(props, new Comparator<BeanProperty>() {
- public int compare(BeanProperty o1, BeanProperty o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
- return props.toArray(new BeanProperty[0]);
- }
-
- public byte[] generate(Class<? extends Throwable> exceptionClass) {
- String className = getFaultBeanName(exceptionClass);
- ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
- String classDescriptor = className.replace('.', '/');
- String classSignature = "L" + classDescriptor + ";";
- QName element = getElementName(exceptionClass);
- String namespace = element.getNamespaceURI();
- String name = element.getLocalPart();
- return defineClass(cw, classDescriptor, classSignature, namespace, name, getProperties(exceptionClass));
- }
-
- public Class<?> generate(Class<? extends Throwable> exceptionClass, GeneratedClassLoader cl) {
- synchronized (exceptionClass) {
- Class<?> faultBeanClass = generatedClasses.get(exceptionClass);
- if (faultBeanClass == null) {
- String className = getFaultBeanName(exceptionClass);
- String classDescriptor = className.replace('.', '/');
- String classSignature = "L" + classDescriptor + ";";
- QName element = getElementName(exceptionClass);
- String namespace = element.getNamespaceURI();
- String name = element.getLocalPart();
- faultBeanClass =
- generate(classDescriptor, classSignature, namespace, name, getProperties(exceptionClass), cl);
- generatedClasses.put(exceptionClass, faultBeanClass);
- }
- return faultBeanClass;
- }
- }
-
- private static String getFaultBeanName(Class<?> exceptionClass) {
- String faultBeanName = null;
- WebFault webFault = exceptionClass.getAnnotation(WebFault.class);
- if (webFault != null) {
- faultBeanName = webFault.faultBean();
- if (!"".equals(faultBeanName)) {
- return faultBeanName;
- }
- }
-
- String name = exceptionClass.getName();
- int index = name.lastIndexOf('.');
- String pkg = name.substring(0, index);
- String clsName = name.substring(index + 1);
-
- // FIXME: [rfeng] This is a workaround to avoid "Prohibited package name: java.lang.jaxws"
- if (pkg.startsWith("java.") || pkg.startsWith("javax.")) {
- pkg = "tuscany";
- }
- faultBeanName = (pkg + ".jaxws." + clsName + "Bean");
- return faultBeanName;
- }
-
- public static QName getElementName(Class<? extends Throwable> exceptionClass) {
- WebFault webFault = exceptionClass.getAnnotation(WebFault.class);
- String namespace = null;
- String name = null;
- if (webFault != null) {
- namespace = webFault.targetNamespace();
- name = webFault.name();
- }
- if (namespace == null) {
- namespace = JavaInterfaceUtil.getNamespace(exceptionClass);
- }
- if (name == null) {
- name = exceptionClass.getSimpleName();
- }
- return new QName(namespace, name);
- }
-
- public static Class<?> generateFaultBeanClass(Class<? extends Throwable> exceptionClass) {
- FaultBeanGenerator generator = new FaultBeanGenerator();
- GeneratedClassLoader cl = new GeneratedClassLoader(exceptionClass.getClassLoader());
- return generator.generate(exceptionClass, cl);
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedClassLoader.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedClassLoader.java
deleted file mode 100644
index f36dd3a443..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedClassLoader.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.security.SecureClassLoader;
-import java.util.HashMap;
-import java.util.Map;
-
-public class GeneratedClassLoader extends SecureClassLoader {
- private class GeneratedClass {
- private String className;
- private byte[] byteCode;
- private Class<?> cls;
-
- public GeneratedClass(String className, byte[] byteCode) {
- super();
- this.className = className;
- this.byteCode = byteCode;
- }
-
- public synchronized Class<?> getGeneratedClass() {
- if (cls == null) {
- cls = defineClass(className, byteCode, 0, byteCode.length);
- }
- return cls;
- }
- }
-
- private Map<String, GeneratedClass> generatedClasses = new HashMap<String, GeneratedClass>();
-
- public GeneratedClassLoader(ClassLoader parentLoader) {
- super(parentLoader);
- }
-
- @Override
- protected Class<?> findClass(String className) throws ClassNotFoundException {
- GeneratedClass cls = generatedClasses.get(className);
- if (cls != null) {
- return cls.getGeneratedClass();
- }
- return super.findClass(className);
- }
-
- public synchronized Class<?> getGeneratedClass(String className, byte[] byteCode) {
- GeneratedClass cls = generatedClasses.get(className);
- if (cls == null) {
- cls = new GeneratedClass(className, byteCode);
- generatedClasses.put(className, cls);
- }
- return cls.getGeneratedClass();
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
deleted file mode 100644
index c3f568ef48..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding;
-import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-
-/**
- * A special data type that generate the class on demand
- * @version $Rev$ $Date$
- */
-public class GeneratedDataTypeImpl implements DataType<XMLType> {
- private XMLAdapterExtensionPoint xmlAdapters;
-
- private Class<?> physical;
- private XMLType logical;
-
- private Map<Class<?>, Object> metaDataMap;
- private Method method;
- private String wrapperClassName;
- private String wrapperNamespace;
- private String wrapperName;
- private boolean request;
- private GeneratedClassLoader classLoader;
-
- private Class<? extends Throwable> exceptionClass;
-
- public GeneratedDataTypeImpl(XMLAdapterExtensionPoint xmlAdapters, Class<? extends Throwable> exceptionClass, GeneratedClassLoader cl) {
- super();
- this.exceptionClass = exceptionClass;
- this.classLoader = cl;
- QName name = FaultBeanGenerator.getElementName(exceptionClass);
- this.logical = new XMLType(name, name);
- this.xmlAdapters = xmlAdapters;
- }
-
- public GeneratedDataTypeImpl(XMLAdapterExtensionPoint xmlAdapters,
- Method m,
- String wrapperClassName,
- String wrapperNamespace,
- String wrapperName,
- boolean request,
- GeneratedClassLoader cl) {
- super();
- this.method = m;
- this.wrapperClassName = wrapperClassName;
- this.wrapperNamespace = wrapperNamespace;
- this.wrapperName = wrapperName;
- this.classLoader = cl;
- this.request = request;
- QName name = new QName(wrapperNamespace, wrapperName);
- this.logical = new XMLType(name, name);
- this.xmlAdapters = xmlAdapters;
- }
-
- public String getDataBinding() {
- return JAXBDataBinding.NAME;
- }
-
- public Type getGenericType() {
- return getPhysical();
- }
-
- public XMLType getLogical() {
- return logical;
- }
-
- public synchronized Class<?> getPhysical() {
- if (physical == null) {
- if (method != null) {
- WrapperBeanGenerator generator = new WrapperBeanGenerator();
- generator.setXmlAdapters(xmlAdapters);
- physical =
- request ? generator.generateRequestWrapper(method, wrapperClassName, wrapperNamespace, wrapperName, classLoader)
- : generator.generateResponseWrapper(method, wrapperClassName, wrapperNamespace, wrapperName, classLoader);
- ;
- } else if (exceptionClass != null) {
- FaultBeanGenerator faultBeanGenerator = new FaultBeanGenerator();
- faultBeanGenerator.setXmlAdapters(xmlAdapters);
- physical = faultBeanGenerator.generate(exceptionClass, classLoader);
- }
- }
- return physical;
- }
-
- public void setDataBinding(String dataBinding) {
- // NOP
- }
-
- public void setGenericType(Type genericType) {
- // NOP
- }
-
- public void setLogical(XMLType logical) {
- this.logical = logical;
- }
-
- public void setPhysical(Class<?> cls) {
- // NOP
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- public <T> T getMetaData(Class<T> type) {
- return metaDataMap == null ? null : type.cast(metaDataMap.get(type));
- }
-
- public <T> void setMetaData(Class<T> type, T metaData) {
- if (metaDataMap == null) {
- metaDataMap = new ConcurrentHashMap<Class<?>, Object>();
- }
- metaDataMap.put(type, metaData);
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
deleted file mode 100644
index 242da0ebd4..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.beans.BeanInfo;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.xml.namespace.QName;
-import javax.xml.ws.WebFault;
-
-import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
-import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.FaultExceptionMapper;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.oasisopen.sca.ServiceRuntimeException;
-
-/**
- * JAX-WS ExceptionHandler
- *
- * @version $Rev$ $Date$
- */
-public class JAXWSFaultExceptionMapper implements FaultExceptionMapper {
- public static final String GETCAUSE = "getCause";
- public static final String GETLOCALIZEDMESSAGE = "getLocalizedMessage";
- public static final String GETSTACKTRACE = "getStackTrace";
- public static final String GETCLASS = "getClass";
-
- private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class[0];
- private DataBindingExtensionPoint dataBindingExtensionPoint;
- private XMLAdapterExtensionPoint xmlAdapterExtensionPoint;
-
-
- public JAXWSFaultExceptionMapper(DataBindingExtensionPoint dataBindingExtensionPoint, XMLAdapterExtensionPoint xmlAdapters) {
- super();
- this.dataBindingExtensionPoint = dataBindingExtensionPoint;
- this.xmlAdapterExtensionPoint = xmlAdapters;
- }
-
- /**
- * The following is quoted from the JAX-WS Specification v2.1
- * <ul>
- * <li>WrapperException(String message, FaultBean faultInfo) <br>
- * A constructor where WrapperException is replaced with the name of the
- * generated wrapper exception and FaultBean is replaced by the name of the
- * generated fault bean.
- * <li> WrapperException(String message, FaultBean faultInfo, Throwable
- * cause) <br>
- * A constructor where WrapperException is replaced with the name of the
- * generated wrapper exception and FaultBean is replaced by the name of the
- * generated fault bean. The last argument, cause, may be used to convey
- * protocol specific fault information
- * </ul>
- */
- @SuppressWarnings("unchecked")
- public Throwable wrapFaultInfo(DataType<DataType> exceptionType, String message, Object faultInfo, Throwable cause, Operation operation) {
- Class<?> exceptionClass = exceptionType.getPhysical();
- if (exceptionClass.isInstance(faultInfo)) {
- return (Throwable)faultInfo;
- }
- DataType<?> faultBeanType = exceptionType.getLogical();
- Class<?> faultBeanClass = faultBeanType.getPhysical();
- try {
- Throwable exc =
- newInstance((Class<? extends Throwable>)exceptionClass, message, faultBeanClass, faultInfo, cause);
- // Include the elem name into the FaultException we build so it can be used for matching in the DataTransformationInterceptor
- //
- // Note this may happen even if we find a constructor above, that is the type of the non-generic fault exc may be an instance
- // of FaultException
- //
- if ((exc instanceof FaultException) && (faultBeanType.getLogical() instanceof XMLType)) {
- FaultException faultExc = (FaultException)exc;
- DataType<XMLType> faultBeanXMLType = (DataType<XMLType>)faultBeanType;
- XMLType faultLogical = faultBeanXMLType.getLogical();
- faultExc.setFaultName(faultLogical.getElementName());
- }
- return exc;
- } catch (Throwable e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- private Throwable newInstance(Class<? extends Throwable> exceptionClass,
- String message,
- Class<?> faultBeanClass,
- Object faultInfo,
- Throwable cause) throws Exception {
- Throwable ex = null;
- Constructor<? extends Throwable> ctor = null;
- try {
- // Get the message property
- Method getMessage = faultBeanClass.getMethod("getMessage");
- message = (String)getMessage.invoke(faultInfo);
- } catch (Throwable e) {
- // Ignore
- }
- try {
- // FIXME: What about if the faultBeanClass is a subclass of the argument type?
- ctor = exceptionClass.getConstructor(String.class, faultBeanClass, Throwable.class);
- ex = ctor.newInstance(message, faultInfo, cause);
- } catch (NoSuchMethodException e1) {
- try {
- ctor = exceptionClass.getConstructor(String.class, faultInfo.getClass());
- ex = ctor.newInstance(message, faultInfo);
- } catch (NoSuchMethodException e2) {
- try {
- ctor = exceptionClass.getConstructor(String.class, Throwable.class);
- ex = ctor.newInstance(message, cause);
- populateException(ex, faultInfo);
- } catch (NoSuchMethodException e3) {
- try {
- ctor = exceptionClass.getConstructor(String.class);
- ex = ctor.newInstance(message);
- populateException(ex, faultInfo);
- } catch (NoSuchMethodException e4) {
- ctor = exceptionClass.getConstructor();
- if (ctor != null) {
- ex = ctor.newInstance();
- populateException(ex, faultInfo);
- } else {
- ex = new FaultException(message, faultInfo, cause);
- }
- }
- }
- }
- }
- return ex;
- }
-
- /**
- * Populate the java exception from the fault bean
- * @param ex
- * @param faultBean
- * @throws Exception
- */
- private void populateException(Throwable ex, Object faultBean) throws Exception {
- PropertyDescriptor props[] = Introspector.getBeanInfo(faultBean.getClass()).getPropertyDescriptors();
- for (PropertyDescriptor p : props) {
- Method getter = p.getReadMethod();
- Method setter = p.getWriteMethod();
- if (getter == null || setter == null) {
- continue;
- }
- try {
- Method m = ex.getClass().getMethod(setter.getName(), setter.getParameterTypes());
- Object pv = getter.invoke(faultBean);
- m.invoke(ex, pv);
- } catch (Exception e) {
- // Ignore;
- }
- }
- }
-
- public Object getFaultInfo(Throwable exception, Class<?> faultBeanClass, Operation operation) {
- if (exception == null) {
- return null;
- }
-
- // Check if it's the generic FaultException
- if (exception instanceof FaultException) {
- return ((FaultException)exception).getFaultInfo();
- }
-
- try {
- Method method = exception.getClass().getMethod("getFaultInfo", EMPTY_CLASS_ARRAY);
- return method.invoke(exception, (Object[])null);
- } catch (NoSuchMethodException e) {
- // Follow the JAX-WS v2.1 Specification section 3.7
- return createFaultBean(exception, faultBeanClass);
- } catch (Throwable e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- private Object createFaultBean(Throwable exception, Class<?> faultBeanClass) {
- /**
- * For each getter in the exception and its superclasses, a property of the same
- * type and name is added to the bean. The getCause, getLocalizedMessage and
- * getStackTrace getters from java.lang.Throwable and the getClass getter from
- * java.lang.Object are excluded from the list of getters to be mapped.
- */
- // Return the exception as-is if it's already the fault bean
- if (faultBeanClass.isInstance(exception)) {
- return exception;
- }
- try {
- Object faultBean = null;
- for (Constructor<?> ctor : faultBeanClass.getConstructors()) {
- Class<?>[] params = ctor.getParameterTypes();
- if (params.length == 1 && String.class == params[0]) {
- faultBean = ctor.newInstance(exception.getMessage());
- } else if (params.length == 2 && String.class == params[0]
- && Throwable.class.isAssignableFrom(params[1])) {
- faultBean = ctor.newInstance(exception.getMessage(), exception);
- } else if (params.length == 0) {
- faultBean = ctor.newInstance();
- }
- if (faultBean != null) {
- break;
- }
- }
- if (faultBean == null) {
- return exception;
- }
- BeanInfo beanInfo = Introspector.getBeanInfo(exception.getClass());
- for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
- Method getter = pd.getReadMethod();
- String name = getter.getName();
- if (!isMappedGetter(name)) {
- continue;
- }
- Method setter = null;
- try {
- setter = faultBeanClass.getMethod("set" + capitalize(pd.getName()), getter.getReturnType());
- } catch (NoSuchMethodException e) {
- continue;
- }
- Object prop = getter.invoke(exception);
- setter.invoke(faultBean, prop);
- }
- return faultBean;
- } catch (Throwable ex) {
- throw new IllegalArgumentException(ex);
- }
- }
-
- @SuppressWarnings("unchecked")
- public boolean introspectFaultDataType(DataType<DataType> exceptionType, final Operation operation, final boolean generatingFaultBean) {
- QName faultName = null;
- boolean result = false;
-
- final Class<?> cls = exceptionType.getPhysical();
- if (cls == FaultException.class) {
- return true;
- }
- DataType faultType = (DataType)exceptionType.getLogical();
- Class<?> faultBean = null;
- final WebFault fault = cls.getAnnotation(WebFault.class);
- if (fault != null) {
- if (!"".equals(fault.name()) || !"".equals(fault.targetNamespace())) {
- QName faultQName = ((XMLType)faultType.getLogical()).getElementName();
- String faultNS =
- "".equals(fault.targetNamespace()) ? faultQName.getNamespaceURI() : fault.targetNamespace();
- String faultLocal = "".equals(fault.name()) ? faultQName.getLocalPart() : fault.name();
- faultName = new QName(faultNS, faultLocal);
- XMLType xmlType = new XMLType(faultName, null);
- faultType.setLogical(xmlType);
- }
- if (!"".equals(fault.faultBean())) {
- faultBean = AccessController.doPrivileged(new PrivilegedAction<Class<?>>() {
- public Class<?> run() {
- try {
- return Class.forName(fault.faultBean(), false, cls.getClassLoader());
- } catch (ClassNotFoundException e) {
- throw new ServiceRuntimeException(e);
- }
- }
- });
- } else {
- Method m;
- try {
- m = cls.getMethod("getFaultInfo", (Class[])null);
- faultBean = m.getReturnType();
- } catch (NoSuchMethodException e) {
- // Ignore
- }
- }
- }
-
- if (faultBean == null) {
- final String faultBeanClassName = CodeGenerationHelper.getPackagePrefix(cls) + cls.getSimpleName() + "Bean";
- final QName qname = faultName;
- faultType = AccessController.doPrivileged(new PrivilegedAction<DataType<XMLType>>() {
- public DataType<XMLType> run() {
- try {
- Class<?> faultBean = Class.forName(faultBeanClassName, false, cls.getClassLoader());
- return new DataTypeImpl<XMLType>(faultBean, new XMLType(qname, qname));
- } catch (ClassNotFoundException e) {
- if (generatingFaultBean) {
- Class<? extends Throwable> t = (Class<? extends Throwable>)cls;
- ClassLoader parent =
- operation == null ? t.getClassLoader() : ((JavaInterface)operation.getInterface())
- .getJavaClass().getClassLoader();
- GeneratedClassLoader cl = new GeneratedClassLoader(parent);
- GeneratedDataTypeImpl dt = new GeneratedDataTypeImpl(xmlAdapterExtensionPoint, t, cl);
- return dt;
- } else {
- return new DataTypeImpl<XMLType>(cls, new XMLType(qname, qname));
- }
- }
- }
- });
- } else {
- faultType.setDataBinding(null);
- faultType.setGenericType(faultBean);
- faultType.setPhysical(faultBean);
- }
-
- // TODO: Use the databinding framework to introspect the fault bean class
- if (faultType.getDataBinding() == null && dataBindingExtensionPoint != null) {
- faultBean = faultType.getPhysical();
- result =
- dataBindingExtensionPoint.introspectType(faultType, operation);
- }
- ((DataType) exceptionType).setLogical(faultType);
-
- /*
- The introspection of the fault DT may not have calculated the correct element name,
- though we may have already done this in this method. Let's look at the DataType now
- that introspection is done, and, if it has an XMLType, let's set the element to the
- 'faultName' if we calculated one.
- */
- if ((faultName != null) && (faultType.getLogical() instanceof XMLType)) {
- XMLType faultTypeXML = (XMLType)faultType.getLogical();
- // The element name (if set) should match the fault name
- faultTypeXML.setElementName(faultName);
- }
-
- return result;
- }
-
- public static boolean isMappedGetter(String methodName) {
- if (GETCAUSE.equals(methodName) || GETLOCALIZEDMESSAGE.equals(methodName)
- || GETSTACKTRACE.equals(methodName)
- || GETCLASS.equals(methodName)) {
- return false;
- } else {
- return true;
- }
- }
-
- private static String capitalize(String name) {
- if (name == null || name.length() == 0) {
- return name;
- } else {
- return Character.toUpperCase(name.charAt(0)) + name.substring(1);
- }
- }
-
- public void setDataBindingExtensionPoint(DataBindingExtensionPoint dataBindingExtensionPoint) {
- this.dataBindingExtensionPoint = dataBindingExtensionPoint;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
deleted file mode 100644
index d1b36fa17c..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jws.Oneway;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.jws.soap.SOAPBinding.Style;
-import javax.xml.namespace.QName;
-import javax.xml.ws.RequestWrapper;
-import javax.xml.ws.ResponseWrapper;
-
-import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
-import org.apache.tuscany.sca.databinding.javabeans.JavaExceptionDataBinding;
-import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding;
-import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.FaultExceptionMapper;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.util.ElementInfo;
-import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-
-/**
- * Introspect the java class/interface with JSR-181 and JAXWS annotations
- *
- * @version $Rev$ $Date$
- */
-public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
- private static final String JAXB_DATABINDING = JAXBDataBinding.NAME;
- private static final String GET = "get";
- private DataBindingExtensionPoint dataBindingExtensionPoint;
- private FaultExceptionMapper faultExceptionMapper;
- private XMLAdapterExtensionPoint xmlAdapterExtensionPoint;
-
-
- public JAXWSJavaInterfaceProcessor(DataBindingExtensionPoint dataBindingExtensionPoint,
- FaultExceptionMapper faultExceptionMapper,
- XMLAdapterExtensionPoint xmlAdapters) {
- super();
- this.dataBindingExtensionPoint = dataBindingExtensionPoint;
- this.faultExceptionMapper = faultExceptionMapper;
- this.xmlAdapterExtensionPoint = xmlAdapters;
- }
-
- public JAXWSJavaInterfaceProcessor() {
- super();
- }
-
- private static String capitalize(String name) {
- if (name == null || name.length() == 0) {
- return name;
- } else {
- return Character.toUpperCase(name.charAt(0)) + name.substring(1);
- }
- }
-
- public void visitInterface(JavaInterface contract) throws InvalidInterfaceException {
-
- final Class<?> clazz = contract.getJavaClass();
- WebService webService = clazz.getAnnotation(WebService.class);
- String tns = JavaXMLMapper.getNamespace(clazz);
- String localName = clazz.getSimpleName();
- if (webService != null) {
- tns = getValue(webService.targetNamespace(), tns);
- localName = getValue(webService.name(), localName);
- contract.setQName(new QName(tns, localName));
- // Mark SEI as Remotable
- contract.setRemotable(true);
- }
- if (!contract.isRemotable()) {
- return;
- }
-
- // SOAP binding (doc/lit/wrapped|bare or rpc/lit)
- SOAPBinding soapBinding = clazz.getAnnotation(SOAPBinding.class);
-
- for (Iterator<Operation> it = contract.getOperations().iterator(); it.hasNext();) {
- final JavaOperation operation = (JavaOperation)it.next();
- final Method method = operation.getJavaMethod();
- introspectFaultTypes(operation);
-
- // SOAP binding (doc/lit/wrapped|bare or rpc/lit)
- SOAPBinding methodSOAPBinding = method.getAnnotation(SOAPBinding.class);
- if (methodSOAPBinding == null) {
- methodSOAPBinding = soapBinding;
- }
-
- boolean documentStyle = true;
- boolean bare = false;
- if (methodSOAPBinding != null) {
- bare = methodSOAPBinding.parameterStyle() == SOAPBinding.ParameterStyle.BARE;
- if(bare) {
- // For BARE parameter style, the data won't be unwrapped
- // The wrapper should be null
- operation.setWrapperStyle(false);
- }
- documentStyle = methodSOAPBinding.style() == Style.DOCUMENT;
- }
-
- String operationName = operation.getName();
- // WebMethod
- WebMethod webMethod = method.getAnnotation(WebMethod.class);
- if (webMethod != null) {
- if (webMethod.exclude()) {
- // Exclude the method
- it.remove();
- continue;
- }
- operationName = getValue(webMethod.operationName(), operationName);
- operation.setName(operationName);
- operation.setAction(webMethod.action());
- }
-
- // Is one way?
- Oneway oneway = method.getAnnotation(Oneway.class);
- if (oneway != null) {
- // JSR 181
- assert method.getReturnType() == void.class;
- operation.setNonBlocking(true);
- }
-
- // Handle BARE mapping
- if (bare) {
- for (int i = 0; i < method.getParameterTypes().length; i++) {
- WebParam param = getAnnotation(method, i, WebParam.class);
- if (param != null) {
- String ns = getValue(param.targetNamespace(), tns);
- // Default to <operationName> for doc-bare
- String name = getValue(param.name(), documentStyle ? operationName : "arg" + i);
- QName element = new QName(ns, name);
- Object logical = operation.getInputType().getLogical().get(i).getLogical();
- if (logical instanceof XMLType) {
- ((XMLType)logical).setElementName(element);
- }
- }
- }
- WebResult result = method.getAnnotation(WebResult.class);
- if (result != null) {
- String ns = getValue(result.targetNamespace(), tns);
- // Default to <operationName>Response for doc-bare
- String name = getValue(result.name(), documentStyle ? operationName + "Response" : "return");
- QName element = new QName(ns, name);
- Object logical = operation.getOutputType().getLogical();
- if (logical instanceof XMLType) {
- ((XMLType)logical).setElementName(element);
- }
- }
- // FIXME: [rfeng] For the BARE mapping, do we need to create a Wrapper?
- // it's null at this point
- } else {
-
- RequestWrapper requestWrapper = method.getAnnotation(RequestWrapper.class);
- String ns = requestWrapper == null ? tns : getValue(requestWrapper.targetNamespace(), tns);
- String name =
- requestWrapper == null ? operationName : getValue(requestWrapper.localName(), operationName);
- String wrapperBeanName = requestWrapper == null ? "" : requestWrapper.className();
- if ("".equals(wrapperBeanName)) {
- wrapperBeanName = CodeGenerationHelper.getPackagePrefix(clazz) + capitalize(method.getName());
- }
-
- DataType<XMLType> inputWrapperDT = null;
-
- final String inputWrapperClassName = wrapperBeanName;
- final String inputNS = ns;
- final String inputName = name;
- inputWrapperDT = AccessController.doPrivileged(new PrivilegedAction<DataType<XMLType>>() {
- public DataType<XMLType> run() {
- try {
- Class<?> wrapperClass = Class.forName(inputWrapperClassName, false, clazz.getClassLoader());
- QName qname = new QName(inputNS, inputName);
- DataType dt = new DataTypeImpl<XMLType>(wrapperClass, new XMLType(qname, qname));
- dataBindingExtensionPoint.introspectType(dt, operation);
- // TUSCANY-2505
- if (dt.getLogical() instanceof XMLType) {
- XMLType xmlType = (XMLType)dt.getLogical();
- xmlType.setElementName(qname);
- }
- return dt;
- } catch (ClassNotFoundException e) {
- GeneratedClassLoader cl = new GeneratedClassLoader(clazz.getClassLoader());
- return new GeneratedDataTypeImpl(xmlAdapterExtensionPoint, method, inputWrapperClassName, inputNS, inputName, true,
- cl);
- }
- }
- });
-
- QName inputWrapper = inputWrapperDT.getLogical().getElementName();
-
- ResponseWrapper responseWrapper = method.getAnnotation(ResponseWrapper.class);
- ns = responseWrapper == null ? tns : getValue(responseWrapper.targetNamespace(), tns);
- name =
- responseWrapper == null ? operationName + "Response" : getValue(responseWrapper.localName(),
- operationName + "Response");
- wrapperBeanName = responseWrapper == null ? "" : responseWrapper.className();
- if ("".equals(wrapperBeanName)) {
- wrapperBeanName =
- CodeGenerationHelper.getPackagePrefix(clazz) + capitalize(method.getName()) + "Response";
- }
-
- DataType<XMLType> outputWrapperDT = null;
- final String outputWrapperClassName = wrapperBeanName;
- final String outputNS = ns;
- final String outputName = name;
-
- outputWrapperDT = AccessController.doPrivileged(new PrivilegedAction<DataType<XMLType>>() {
- public DataType<XMLType> run() {
- try {
- Class<?> wrapperClass =
- Class.forName(outputWrapperClassName, false, clazz.getClassLoader());
- QName qname = new QName(outputNS, outputName);
- DataType dt = new DataTypeImpl<XMLType>(wrapperClass, new XMLType(qname, qname));
- dataBindingExtensionPoint.introspectType(dt, operation);
- // TUSCANY-2505
- if (dt.getLogical() instanceof XMLType) {
- XMLType xmlType = (XMLType)dt.getLogical();
- xmlType.setElementName(qname);
- }
- return dt;
- } catch (ClassNotFoundException e) {
- GeneratedClassLoader cl = new GeneratedClassLoader(clazz.getClassLoader());
- return new GeneratedDataTypeImpl(xmlAdapterExtensionPoint, method, outputWrapperClassName, outputNS, outputName,
- false, cl);
- }
- }
- });
- QName outputWrapper = outputWrapperDT.getLogical().getElementName();
-
- List<ElementInfo> inputElements = new ArrayList<ElementInfo>();
- for (int i = 0; i < method.getParameterTypes().length; i++) {
- WebParam param = getAnnotation(method, i, WebParam.class);
- ns = param != null ? param.targetNamespace() : "";
- // Default to "" for doc-lit-wrapped && non-header
- ns = getValue(ns, documentStyle && (param == null || !param.header()) ? "" : tns);
- name = param != null ? param.name() : "";
- name = getValue(name, "arg" + i);
- QName element = new QName(ns, name);
- Object logical = operation.getInputType().getLogical().get(i).getLogical();
- if (logical instanceof XMLType) {
- ((XMLType)logical).setElementName(element);
- }
- inputElements.add(new ElementInfo(element, null));
- }
-
- List<ElementInfo> outputElements = new ArrayList<ElementInfo>();
- WebResult result = method.getAnnotation(WebResult.class);
- // Default to "" for doc-lit-wrapped && non-header
- ns = result != null ? result.targetNamespace() : "";
- ns = getValue(ns, documentStyle && (result == null || !result.header()) ? "" : tns);
- name = result != null ? result.name() : "";
- name = getValue(name, "return");
- QName element = new QName(ns, name);
-
- if (operation.getOutputType() != null) {
- Object logical = operation.getOutputType().getLogical();
- if (logical instanceof XMLType) {
- ((XMLType)logical).setElementName(element);
- }
- outputElements.add(new ElementInfo(element, null));
- }
-
- String db = inputWrapperDT != null ? inputWrapperDT.getDataBinding() : JAXB_DATABINDING;
- WrapperInfo wrapperInfo =
- new WrapperInfo(db, new ElementInfo(inputWrapper, null), new ElementInfo(outputWrapper, null),
- inputElements, outputElements);
-
- wrapperInfo.setInputWrapperType(inputWrapperDT);
- wrapperInfo.setOutputWrapperType(outputWrapperDT);
-
- operation.setWrapper(wrapperInfo);
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- private void introspectFaultTypes(Operation operation) {
- if (operation != null && operation.getFaultTypes() != null) {
- for (DataType exceptionType : operation.getFaultTypes()) {
- faultExceptionMapper.introspectFaultDataType(exceptionType, operation, true);
- DataType faultType = (DataType)exceptionType.getLogical();
- if (faultType.getDataBinding() == JavaExceptionDataBinding.NAME) {
- // The exception class doesn't have an associated bean class, so
- // synthesize a virtual bean by introspecting the exception class.
- createSyntheticBean(operation, exceptionType);
- }
- }
- }
- }
-
- private void createSyntheticBean(Operation operation, DataType exceptionType) {
- DataType faultType = (DataType)exceptionType.getLogical();
- QName faultBeanName = ((XMLType)faultType.getLogical()).getElementName();
- List<DataType<XMLType>> beanDataTypes = new ArrayList<DataType<XMLType>>();
- for (Method aMethod : exceptionType.getPhysical().getMethods()) {
- if (Modifier.isPublic(aMethod.getModifiers()) && aMethod.getName().startsWith(GET)
- && aMethod.getParameterTypes().length == 0
- && JAXWSFaultExceptionMapper.isMappedGetter(aMethod.getName())) {
- String propName = resolvePropertyFromMethod(aMethod.getName());
- QName propQName = new QName(faultBeanName.getNamespaceURI(), propName);
- Class propType = aMethod.getReturnType();
- XMLType xmlPropType = new XMLType(propQName, null);
- DataType<XMLType> propDT = new DataTypeImpl<XMLType>(propType, xmlPropType);
- org.apache.tuscany.sca.databinding.annotation.DataType dt =
- aMethod.getAnnotation(org.apache.tuscany.sca.databinding.annotation.DataType.class);
- if (dt != null) {
- propDT.setDataBinding(dt.value());
- }
- dataBindingExtensionPoint.introspectType(propDT, operation);
-
- // sort the list lexicographically as specified in JAX-WS spec section 3.7
- int i = 0;
- for (; i < beanDataTypes.size(); i++) {
- if (beanDataTypes.get(i).getLogical().getElementName().getLocalPart().compareTo(propName) > 0) {
- break;
- }
- }
- beanDataTypes.add(i, propDT);
- }
- }
- operation.getFaultBeans().put(faultBeanName, beanDataTypes);
- }
-
- private String resolvePropertyFromMethod(String methodName) {
- StringBuffer propName = new StringBuffer();
- propName.append(Character.toLowerCase(methodName.charAt(GET.length())));
- propName.append(methodName.substring(GET.length() + 1));
- return propName.toString();
- }
-
- private <T extends Annotation> T getAnnotation(Method method, int index, Class<T> annotationType) {
- Annotation[] annotations = method.getParameterAnnotations()[index];
- for (Annotation annotation : annotations) {
- if (annotation.annotationType() == annotationType) {
- return annotationType.cast(annotation);
- }
- }
- return null;
- }
-
- private static String getValue(String value, String defaultValue) {
- return "".equals(value) ? defaultValue : value;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java b/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
deleted file mode 100644
index 764c10ff00..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-
-import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil;
-
-public class WrapperBeanGenerator extends BaseBeanGenerator {
-
- public List<Class<?>> generateWrapperBeans(Class<?> sei) {
- GeneratedClassLoader cl = new GeneratedClassLoader(sei.getClassLoader());
- List<Class<?>> classes = new ArrayList<Class<?>>();
- for (Method m : sei.getMethods()) {
- if (m.getDeclaringClass() == Object.class) {
- continue;
- }
- classes.add(generateRequestWrapper(sei, m, cl));
- classes.add(generateResponseWrapper(sei, m, cl));
- }
- return classes;
-
- }
-
- public Class<?> generateRequestWrapper(Class<?> sei, Method m, GeneratedClassLoader cl) {
- String wrapperNamespace = JavaInterfaceUtil.getNamespace(sei);
- String wrapperName = m.getName();
- String wrapperBeanName = capitalize(wrapperName);
- String wrapperClassName = CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;
-
- return generateRequestWrapper(m, wrapperClassName, wrapperNamespace, wrapperName, cl);
- }
-
- public Class<?> generateRequestWrapper(Method m,
- String wrapperClassName,
- String wrapperNamespace,
- String wrapperName,
- GeneratedClassLoader cl) {
- synchronized (m.getDeclaringClass()) {
- MethodKey key = new MethodKey(m, true);
- Class<?> wrapperClass = generatedClasses.get(key);
- if (wrapperClass == null) {
- String wrapperClassDescriptor = wrapperClassName.replace('.', '/');
- String wrapperClassSignature = "L" + wrapperClassDescriptor + ";";
-
- Class<?>[] paramTypes = m.getParameterTypes();
- Type[] genericParamTypes = m.getGenericParameterTypes();
- Annotation[][] paramAnnotations = m.getParameterAnnotations();
- List<BeanProperty> properties = new ArrayList<BeanProperty>();
- for (int i = 0; i < paramTypes.length; i++) {
- String propNS = "";
- String propName = "arg" + i;
-
- WebParam webParam = findAnnotation(paramAnnotations[i], WebParam.class);
- if (webParam != null && webParam.header()) {
- continue;
- }
- WebParam.Mode mode = WebParam.Mode.IN;
- if (webParam != null) {
- mode = webParam.mode();
- if (webParam.name().length() > 0) {
- propName = webParam.name();
- }
- propNS = webParam.targetNamespace();
- }
- if (mode.equals(WebParam.Mode.IN) || mode.equals(WebParam.Mode.INOUT)) {
- java.lang.reflect.Type genericParamType = getHolderValueType(genericParamTypes[i]);
- Class<?> paramType = CodeGenerationHelper.getErasure(genericParamType);
- BeanProperty prop = new BeanProperty(propNS, propName, paramType, genericParamType, true);
- prop.getJaxbAnnotaions().addAll(findJAXBAnnotations(paramAnnotations[i]));
- properties.add(prop);
- }
- }
-
- wrapperClass =
- generate(wrapperClassDescriptor, wrapperClassSignature, wrapperNamespace, wrapperName, properties
- .toArray(new BeanProperty[properties.size()]), cl);
- generatedClasses.put(key, wrapperClass);
- }
- return wrapperClass;
-
- }
- }
-
- public Class<?> generateResponseWrapper(Class<?> sei, Method m, GeneratedClassLoader cl) {
- String wrapperNamespace = JavaInterfaceUtil.getNamespace(sei);
-
- String wrapperName = m.getName() + "Response";
- String wrapperBeanName = capitalize(wrapperName);
- String wrapperClassName = CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;
- return generateResponseWrapper(m, wrapperClassName, wrapperNamespace, wrapperName, cl);
-
- }
-
- public Class<?> generateResponseWrapper(Method m,
- String wrapperClassName,
- String wrapperNamespace,
- String wrapperName,
- GeneratedClassLoader cl) {
- synchronized (m.getDeclaringClass()) {
- MethodKey key = new MethodKey(m, false);
- Class<?> wrapperClass = generatedClasses.get(key);
- if (wrapperClass == null) {
- String wrapperClassDescriptor = wrapperClassName.replace('.', '/');
- String wrapperClassSignature = "L" + wrapperClassDescriptor + ";";
-
- List<BeanProperty> properties = new ArrayList<BeanProperty>();
- // Collect all OUT, INOUT parameters as fields
- Annotation[][] paramAnns = m.getParameterAnnotations();
- Class<?>[] paramTypes = m.getParameterTypes();
- java.lang.reflect.Type[] genericParamTypes = m.getGenericParameterTypes();
- for (int i = 0; i < paramTypes.length; i++) {
- WebParam webParam = findAnnotation(paramAnns[i], WebParam.class);
- if (webParam != null) {
- if (webParam.header() || webParam.mode() == WebParam.Mode.IN) {
- continue;
- }
- }
- if (!isHolder(genericParamTypes[i])) {
- continue;
- }
-
- List<Annotation> jaxb = findJAXBAnnotations(paramAnns[i]);
-
- java.lang.reflect.Type genericParamType = getHolderValueType(genericParamTypes[i]);
- Class<?> paramType = CodeGenerationHelper.getErasure(genericParamType);
-
- String paramNamespace = "";
- String paramName = "arg" + i;
-
- if (webParam != null) {
- if (webParam.name().length() > 0)
- paramName = webParam.name();
- if (webParam.targetNamespace().length() > 0)
- paramNamespace = webParam.targetNamespace();
- }
-
- BeanProperty prop = new BeanProperty(paramNamespace, paramName, paramType, genericParamType, true);
- prop.getJaxbAnnotaions().addAll(jaxb);
- properties.add(prop);
- }
-
- WebResult webResult = m.getAnnotation(WebResult.class);
- Class<?> returnType = m.getReturnType();
- if (!((webResult != null && webResult.header()) || returnType == Void.TYPE)) {
- String propName = "return";
- String propNS = "";
-
- if (webResult != null) {
- if (webResult.name().length() > 0) {
- propName = webResult.name();
- }
- if (webResult.targetNamespace().length() > 1) {
- propNS = webResult.targetNamespace();
- }
- }
-
- List<Annotation> jaxb = findJAXBAnnotations(m.getAnnotations());
-
- Type genericReturnType = m.getGenericReturnType();
- BeanProperty prop = new BeanProperty(propNS, propName, returnType, genericReturnType, true);
- prop.getJaxbAnnotaions().addAll(jaxb);
- properties.add(prop);
- }
- wrapperClass =
- generate(wrapperClassDescriptor, wrapperClassSignature, wrapperNamespace, wrapperName, properties
- .toArray(new BeanProperty[properties.size()]), cl);
- generatedClasses.put(key, wrapperClass);
- }
- return wrapperClass;
-
- }
- }
-
- private static class MethodKey {
- private Method m;
- private boolean request;
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((m == null) ? 0 : m.hashCode());
- result = prime * result + (request ? 1231 : 1237);
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final MethodKey other = (MethodKey)obj;
- if (m == null) {
- if (other.m != null)
- return false;
- } else if (!m.equals(other.m))
- return false;
- if (request != other.request)
- return false;
- return true;
- }
-
- public MethodKey(Method m, boolean request) {
- super();
- this.m = m;
- this.request = request;
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
deleted file mode 100644
index 1b07e25bad..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public interface Bean<T> {
- T getP1();
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
deleted file mode 100644
index d38a21ba52..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean1.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class Bean1 {
- private String p1;
- private int p2;
- public String getP1() {
- return p1;
- }
- public void setP1(String p1) {
- this.p1 = p1;
- }
- public int getP2() {
- return p2;
- }
- public void setP2(int p2) {
- this.p2 = p2;
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
deleted file mode 100644
index 7b9375063d..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/Bean2.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class Bean2 implements Bean<String>{
- private String p1;
- private int p2;
- public String getP1() {
- return p1;
- }
- public void setP1(String p1) {
- this.p1 = p1;
- }
- public int getP2() {
- return p2;
- }
- public void setP2(int p2) {
- this.p2 = p2;
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGeneratorTestCase.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGeneratorTestCase.java
deleted file mode 100644
index 567591f166..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/FaultBeanGeneratorTestCase.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.annotation.Annotation;
-
-import javax.xml.bind.JAXBContext;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.util.CheckClassAdapter;
-
-/**
- * @version $Rev$ $Date$
- */
-public class FaultBeanGeneratorTestCase extends TestCase {
- public void testGenerate() throws IOException {
- byte[] content = new FaultBeanGenerator().generate(MyException.class);
- ClassReader cr = new ClassReader(content);
- PrintWriter pw = new PrintWriter(System.out);
- CheckClassAdapter.verify(cr, false, pw);
- }
-
- public void testGenerateClass() throws Exception {
- Class<?> cls = FaultBeanGenerator.generateFaultBeanClass(MyException.class);
- Assert.assertEquals("org.apache.tuscany.sca.interfacedef.java.jaxws.jaxws.MyExceptionBean", cls.getName());
- for (Annotation a : cls.getAnnotations()) {
- System.out.println(a);
- }
- // XmlType xmlType = cls.getAnnotation(XmlType.class);
- // System.out.println(xmlType);
- Object bean = cls.newInstance();
- JAXBContext context = JAXBContextHelper.createJAXBContext(cls);
- StringWriter sw = new StringWriter();
- context.createMarshaller().marshal(bean, sw);
- System.out.println(sw.toString());
-
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java
deleted file mode 100644
index 108d283584..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import javax.jws.WebMethod;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
-import org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint;
-import org.apache.tuscany.sca.databinding.jaxb.DefaultXMLAdapterExtensionPoint;
-import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-
-import com.example.stock.StockExceptionTest;
-/**
- *
- * @version $Rev$ $Date$
- */
-public class JAXWSJavaInterfaceProcessorTestCase extends TestCase {
- private JAXWSJavaInterfaceProcessor interfaceProcessor;
-
- /**
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- DataBindingExtensionPoint db = new DefaultDataBindingExtensionPoint();
- XMLAdapterExtensionPoint xa = new DefaultXMLAdapterExtensionPoint();
- interfaceProcessor = new JAXWSJavaInterfaceProcessor(db, new JAXWSFaultExceptionMapper(db, xa), xa);
- }
-
- public void testWrapper() throws Exception {
- DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory();
- JavaInterface contract = iFactory.createJavaInterface(StockExceptionTest.class);
-
- interfaceProcessor.visitInterface(contract);
- Operation op = contract.getOperations().get(0);
- Assert.assertTrue(!op.isWrapperStyle());
- Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOffer"), op.getWrapper().getInputWrapperElement().getQName());
- Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOfferResponse"), op.getWrapper().getOutputWrapperElement().getQName());
- }
-
- /**
- * Test method for
- * {@link org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSJavaInterfaceProcessor#visitInterface(JavaInterface)}.
- */
- public final void testProcessor() throws Exception {
- DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory();
- JavaInterface contract = iFactory.createJavaInterface(WebServiceInterfaceWithoutAnnotation.class);
-
- interfaceProcessor.visitInterface(contract);
- assertFalse(contract.isRemotable());
-
- contract = iFactory.createJavaInterface(WebServiceInterfaceWithAnnotation.class);
- interfaceProcessor.visitInterface(contract);
- assertTrue(contract.isRemotable());
-
- Operation op1 = contract.getOperations().get(0);
- Operation op2 = contract.getOperations().get(1);
-
- Operation op = null;
- if ("m1".equals(op1.getName())) {
- op = op1;
- } else {
- op = op2;
- }
-
- assertTrue(!op.isWrapperStyle() && op.getWrapper() == null);
-
- if ("M2".equals(op2.getName())) {
- op = op2;
- } else {
- op = op1;
- }
- assertTrue(!op.isWrapperStyle() && op.getWrapper() != null);
-
- }
-
- @WebService
- private static interface WebServiceInterfaceWithAnnotation {
-
- @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
- @WebMethod(operationName = "m1")
- String m1(String str);
-
- @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
- @WebMethod(operationName = "M2")
- String m2(String str, int i);
- }
-
- private static interface WebServiceInterfaceWithoutAnnotation {
-
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JavaReflectionHelperTestCase.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JavaReflectionHelperTestCase.java
deleted file mode 100644
index b3c7102a78..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JavaReflectionHelperTestCase.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.lang.reflect.Field;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JavaReflectionHelperTestCase {
- @Test
- public void testErasure() throws Exception {
- for (Field f : TestGenericClass.class.getDeclaredFields()) {
- Class<?> cls = CodeGenerationHelper.getErasure(f.getGenericType());
- System.out.println(cls.getName());
- Assert.assertSame(f.getType(), cls);
- }
- }
-
- @Test
- public void testSignature() throws Exception {
- for (Field f : TestGenericClass.class.getDeclaredFields()) {
- String sig = CodeGenerationHelper.getSignature(f.getGenericType());
- System.out.println(sig);
- }
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyException.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyException.java
deleted file mode 100644
index 4df0517de6..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class MyException extends Exception {
- private String error;
- private int code;
-
- public MyException() {
- super();
- }
-
- public MyException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public MyException(String message) {
- super(message);
- }
-
- public MyException(Throwable cause) {
- super(cause);
- }
-
- public String getError() {
- return error;
- }
-
- public void setError(String error) {
- this.error = error;
- }
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
deleted file mode 100644
index 78527193d5..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/MyServiceImpl.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.util.List;
-
-import javax.jws.WebMethod;
-import javax.jws.WebService;
-
-/**
- * @version $Rev$ $Date$
- */
-@WebService
-public class MyServiceImpl {
-
- public MyServiceImpl() {
- super();
- }
-
- @WebMethod
- public <T extends Bean1> T getBean(T b, Bean2 b2) {
- return null;
- }
-
- @WebMethod
- public List<? extends Bean1> getBeans() {
- return null;
- }
-
- @WebMethod
- public String convert(String str, int i) throws MyException {
- return "ME";
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestGenericClass.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestGenericClass.java
deleted file mode 100644
index 2ecf822904..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestGenericClass.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @version $Rev$ $Date$
- */
-public class TestGenericClass <T extends Serializable & List<String>, S> {
- public TestGenericClass<?, S> i;
- public T f1;
- public T[] f2;
- public S f3;
- public List<? extends T> list1;
- public List<?> list2;
- public List<? extends Serializable> list3;
- public int f4;
- public int[] f5;
- public Map<? super T, S> map;
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestInterface.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestInterface.java
deleted file mode 100644
index 997713a780..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/TestInterface.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.xml.ws.Holder;
-
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * @version $Rev$ $Date$
- */
-@Remotable
-public interface TestInterface {
- int convert(String currency1, String currency2);
-
- List<Double> getRates(String currency);
-
- void check(boolean flag);
-
- String[] list(int[] list);
-
- int[][] map(String[][] strs);
-
- String getGreetings(String name);
-
- String[] getGreetingsArray(String[] names);
-
- List<String> getGreetingsList(List<String> names);
-
- ArrayList<String> getGreetingsArrayList(ArrayList<String> names);
-
- Map<String, String> getGreetingsMap(Map<String, String> namesMap);
-
- HashMap<String, String> getGreetingsHashMap(HashMap<String, String> namesMap);
-
- @WebMethod
- @WebResult(name = "output")
- String webMethod(@WebParam(name = "input", mode = WebParam.Mode.IN)
- String in, @WebParam(name = "holder", mode = WebParam.Mode.INOUT)
- Holder<String> holder);
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGeneratorTestCase.java b/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGeneratorTestCase.java
deleted file mode 100644
index b14ef19939..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGeneratorTestCase.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.jaxws;
-
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
-import org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper;
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WrapperBeanGeneratorTestCase {
- @Test
- public void testGenerate() throws Exception {
- List<Class<?>> classes = new WrapperBeanGenerator().generateWrapperBeans(TestInterface.class);
- for (Class<?> cls : classes) {
- for (Field f : cls.getDeclaredFields()) {
- System.out.println(f.getName());
- System.out.println(f.getGenericType());
- for (Annotation a : f.getAnnotations()) {
- System.out.println(a);
- }
- }
- for (Method m : cls.getDeclaredMethods()) {
- System.out.println(m);
- for (Annotation a : m.getAnnotations()) {
- System.out.println(a);
- }
- }
- }
- JAXBContext context = JAXBContextHelper.createJAXBContext(classes.toArray(new Class<?>[classes.size()]));
- for (Class<?> cls : classes) {
- Object obj = cls.newInstance();
- StringWriter sw = new StringWriter();
- context.createMarshaller().marshal(obj, sw);
- // System.out.println(sw.toString());
- StringReader sr = new StringReader(sw.toString());
- context.createUnmarshaller().unmarshal(new StreamSource(sr), cls);
- }
- }
-
- @Test
- public void testGenerateSchema() throws Exception {
- List<Class<?>> classes = new WrapperBeanGenerator().generateWrapperBeans(TestInterface.class);
- JAXBContext context = JAXBContextHelper.createJAXBContext(classes.toArray(new Class<?>[classes.size()]));
- Map<String, String> results = JAXBTypeHelper.generateSchema(context);
- for (String xsd : results.values()) {
- System.out.println(xsd);
- }
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/Stock.wsdl b/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/Stock.wsdl
deleted file mode 100644
index 882408ade6..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/Stock.wsdl
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://www.example.com/stock" xmlns:impl="http://www.example.com/stock"
- xmlns:tns="http://www.example.com/stock" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="StockExceptionTest">
- <wsdl:types>
- <schema targetNamespace="http://www.example.com/stock" xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <complexType name="StockOffer">
- <sequence>
- <element name="symbol" minOccurs="1" type="xsd:string" />
- <element name="price" minOccurs="1" type="xsd:float" nillable="true" /><!-- max price reqested, actual response -->
- <element name="name" minOccurs="0" type="xsd:string" />
- <element name="list" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
- </sequence>
- </complexType>
-
- <element name="stockQuoteOffer">
- <complexType>
- <sequence>
- <element name="input" minOccurs="0" maxOccurs="unbounded" type="tns:StockOffer" />
- </sequence>
- </complexType>
- </element>
- <element name="stockQuoteOfferResponse">
- <complexType>
- <sequence>
- <element name="stockQuoteOfferReturn" minOccurs="0" type="tns:StockOffer" />
- </sequence>
- </complexType>
- </element>
-
- <!-- Faults -->
- <element name="InvalidSymbolFault">
- <complexType>
- <sequence>
- <element name="message" minOccurs="1" type="xsd:string" />
- <element name="offer" minOccurs="1" type="tns:StockOffer" />
- </sequence>
- </complexType>
- </element>
-
- <element name="MarketClosedFault" type="xsd:int" />
-
- <element name="TestNotDeclaredAtSourceFault" type="xsd:string" />
-
- </schema>
- </wsdl:types>
-
-
- <wsdl:message name="stockQuoteOfferRequest">
- <wsdl:part element="tns:stockQuoteOffer" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="stockQuoteOfferResponse">
- <wsdl:part element="tns:stockQuoteOfferResponse" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="InvalidSymbolFault">
- <wsdl:part element="tns:InvalidSymbolFault" name="fault" />
- </wsdl:message>
-
- <wsdl:message name="MarketClosedFault">
- <wsdl:part element="tns:MarketClosedFault" name="fault" />
- </wsdl:message>
-
- <wsdl:message name="TestNotDeclaredAtSourceFault">
- <wsdl:part element="tns:TestNotDeclaredAtSourceFault" name="fault" />
- </wsdl:message>
-
-
- <wsdl:portType name="StockExceptionTest">
- <wsdl:operation name="stockQuoteOffer">
- <wsdl:input message="tns:stockQuoteOfferRequest" name="stockQuoteOfferRequest" />
-
- <wsdl:output message="tns:stockQuoteOfferResponse" name="stockQuoteOfferResponse" />
-
- <wsdl:fault message="tns:InvalidSymbolFault" name="InvalidSymbolException" />
-
- <wsdl:fault message="tns:MarketClosedFault" name="MarketClosedException" />
-
- <wsdl:fault message="tns:TestNotDeclaredAtSourceFault" name="TestNotDeclaredAtSourceException" />
- </wsdl:operation>
-
-
- </wsdl:portType>
-
- <wsdl:binding name="StockExceptionTestServiceSoapBinding" type="tns:StockExceptionTest">
- <!-- <wsaw:UsingAddressing wsdl:required="false" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/> -->
-
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
-
- <wsdl:operation name="stockQuoteOffer">
- <wsdlsoap:operation soapAction="" />
-
- <wsdl:input name="stockQuoteOfferRequest">
- <wsdlsoap:body use="literal" />
- </wsdl:input>
-
- <wsdl:output name="stockQuoteOfferResponse">
- <wsdlsoap:body use="literal" />
- </wsdl:output>
-
- <wsdl:fault name="InvalidSymbolException">
- <wsdlsoap:fault name="InvalidSymbolException" use="literal" />
- </wsdl:fault>
-
- <wsdl:fault name="MarketClosedException">
- <wsdlsoap:fault name="MarketClosedException" use="literal" />
- </wsdl:fault>
-
- <wsdl:fault name="TestNotDeclaredAtSourceException">
- <wsdlsoap:fault name="TestNotDeclaredAtSourceException" use="literal" />
- </wsdl:fault>
-
-
-
- </wsdl:operation>
-
-
- </wsdl:binding>
-
-
-</wsdl:definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/StockExceptionTest.wsdl b/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/StockExceptionTest.wsdl
deleted file mode 100644
index 4fee9e9756..0000000000
--- a/java/sca/contrib/modules/interface-java-jaxws/src/test/resources/wsdl/StockExceptionTest.wsdl
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<wsdl:definitions targetNamespace="http://www.example.com/stock" xmlns:impl="http://www.example.com/stock"
- xmlns:tns="http://www.example.com/stock" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="StockExceptionTest">
- <wsdl:types>
- <schema targetNamespace="http://www.example.com/stock" xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <complexType name="StockOffer">
- <sequence>
- <element name="symbol" minOccurs="1" type="xsd:string" />
- <element name="price" minOccurs="1" type="xsd:float" nillable="true" /> <!-- max price reqested, actual response -->
- <element name="name" minOccurs="0" type="xsd:string" />
- <element name="list" minOccurs="0" maxOccurs="unbounded" type="xsd:string" />
- </sequence>
- </complexType>
-
- <element name="stockQuoteOffer">
- <complexType>
- <sequence>
- <element name="input" minOccurs="0" maxOccurs="unbounded" type="tns:StockOffer" />
- </sequence>
- </complexType>
- </element>
- <!-- TUSCANY 2505, make the responseWrapper non-anonymous -->
- <element name="stockQuoteOfferResponse" type="tns:StockQuoteOfferResponseType">
- </element>
- <complexType name="StockQuoteOfferResponseType">
- <sequence>
- <element name="stockQuoteOfferReturn" minOccurs="0" type="tns:StockOffer" />
- </sequence>
- </complexType>
- <!-- Faults -->
- <element name="InvalidSymbolFault">
- <complexType>
- <sequence>
- <element name="message" minOccurs="1" type="xsd:string" />
- <element name="offer" minOccurs="1" type="tns:StockOffer" />
- </sequence>
- </complexType>
- </element>
-
- <element name="MarketClosedFault" type="xsd:int" />
-
- <element name="TestNotDeclaredAtSourceFault" type="xsd:string" />
-
- </schema>
- </wsdl:types>
-
-
- <wsdl:message name="stockQuoteOfferRequest">
- <wsdl:part element="tns:stockQuoteOffer" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="stockQuoteOfferResponse">
- <wsdl:part element="tns:stockQuoteOfferResponse" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="InvalidSymbolFault">
- <wsdl:part element="tns:InvalidSymbolFault" name="fault" />
- </wsdl:message>
-
- <wsdl:message name="MarketClosedFault">
- <wsdl:part element="tns:MarketClosedFault" name="fault" />
- </wsdl:message>
-
- <wsdl:message name="TestNotDeclaredAtSourceFault">
- <wsdl:part element="tns:TestNotDeclaredAtSourceFault" name="fault" />
- </wsdl:message>
-
-
- <wsdl:portType name="StockExceptionTest">
- <wsdl:operation name="stockQuoteOffer">
- <wsdl:input message="tns:stockQuoteOfferRequest" name="stockQuoteOfferRequest" />
-
- <wsdl:output message="tns:stockQuoteOfferResponse" name="stockQuoteOfferResponse" />
-
- <wsdl:fault message="tns:InvalidSymbolFault" name="InvalidSymbolException" />
-
- <wsdl:fault message="tns:MarketClosedFault" name="MarketClosedException" />
-
- <wsdl:fault message="tns:TestNotDeclaredAtSourceFault" name="TestNotDeclaredAtSourceException" />
- </wsdl:operation>
-
-
- </wsdl:portType>
-
- <wsdl:binding name="StockExceptionTestServiceSoapBinding" type="tns:StockExceptionTest">
- <!-- <wsaw:UsingAddressing wsdl:required="false" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/> -->
-
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
-
- <wsdl:operation name="stockQuoteOffer">
- <wsdlsoap:operation soapAction="" />
-
- <wsdl:input name="stockQuoteOfferRequest">
- <wsdlsoap:body use="literal" />
- </wsdl:input>
-
- <wsdl:output name="stockQuoteOfferResponse">
- <wsdlsoap:body use="literal" />
- </wsdl:output>
-
- <wsdl:fault name="InvalidSymbolException">
- <wsdlsoap:fault name="InvalidSymbolException" use="literal" />
- </wsdl:fault>
-
- <wsdl:fault name="MarketClosedException">
- <wsdlsoap:fault name="MarketClosedException" use="literal" />
- </wsdl:fault>
-
- <wsdl:fault name="TestNotDeclaredAtSourceException">
- <wsdlsoap:fault name="TestNotDeclaredAtSourceException" use="literal" />
- </wsdl:fault>
-
-
-
- </wsdl:operation>
-
-
- </wsdl:binding>
-
- <wsdl:service name="StockExceptionTestService">
- <wsdl:port binding="tns:StockExceptionTestServiceSoapBinding" name="StockExceptionTestServiceSoapPort">
- <wsdlsoap:address location="http://localhost:8085/services/exchangeJaxbService" />
-
- </wsdl:port>
-
- </wsdl:service>
-
-</wsdl:definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-java-xml/LICENSE b/java/sca/contrib/modules/interface-java-xml/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface-java-xml/META-INF/MANIFEST.MF b/java/sca/contrib/modules/interface-java-xml/META-INF/MANIFEST.MF
deleted file mode 100644
index 1cf2b0cc0c..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Private-Package: org.apache.tuscany.sca.interfacedef.java.xml;version=
- "2.0"
-Tool: Bnd-0.0.255
-Bundle-Name: Apache Tuscany SCA Java Interface XML Model
-Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0
-Bnd-LastModified: 1225397167906
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Java Interface XML Model
-Import-Package: javax.xml.namespace,
- javax.xml.stream,
- org.apache.tuscany.sca.assembly;version="2.0";resolution:=optional,
- org.apache.tuscany.sca.assembly.builder;version="2.0";resolution:=optional,
- org.apache.tuscany.sca.contribution.processor;version="2.0",
- org.apache.tuscany.sca.contribution.resolver;version="2.0",
- org.apache.tuscany.sca.core;version="2.0",
- org.apache.tuscany.sca.definitions;version="2.0";resolution:=optional,
- org.apache.tuscany.sca.interfacedef;version="2.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0",
- org.apache.tuscany.sca.monitor;version="2.0",
- org.apache.tuscany.sca.policy;version="2.0.0"
-Bundle-SymbolicName: org.apache.tuscany.sca.interface.java.xml
-Bundle-DocURL: http://www.apache.org/
-
diff --git a/java/sca/contrib/modules/interface-java-xml/NOTICE b/java/sca/contrib/modules/interface-java-xml/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface-java-xml/pom.xml b/java/sca/contrib/modules/interface-java-xml/pom.xml
deleted file mode 100644
index bc92bdc156..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface-java-xml</artifactId>
- <name>Apache Tuscany SCA Java Interface XML Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly-xml</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface-java</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution-impl</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-sca</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface.java.xml</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef.java.xml*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java b/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
deleted file mode 100644
index 5d2d8ed51c..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.xml;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-
-/**
- * Interface Java XML Constants.
- *
- * @version $Rev$ $Date$
- */
-public interface JavaConstants {
-
- String INTERFACE_JAVA = "interface.java";
- QName INTERFACE_JAVA_QNAME = new QName(Constants.SCA10_NS, "interface.java");
- String INTERFACE = "interface";
- String CALLBACK_INTERFACE = "callbackInterface";
-
-}
diff --git a/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java b/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
deleted file mode 100644
index ae5bf4c56d..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.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.builder.impl.ProblemImpl;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceProcessor implements StAXArtifactProcessor<JavaInterfaceContract>, JavaConstants {
-
- private JavaInterfaceFactory javaFactory;
- private Monitor monitor;
-
- public JavaInterfaceProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
- this.monitor = monitor;
- }
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-javaxml-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-javaxml-validation-messages", Severity.ERROR, model, message,(Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- private JavaInterface createJavaInterface(String interfaceName) {
- JavaInterface javaInterface = javaFactory.createJavaInterface();
- javaInterface.setUnresolved(true);
- javaInterface.setName(interfaceName);
- return javaInterface;
- }
-
- public JavaInterfaceContract read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
-
- // Read an <interface.java>
- JavaInterfaceContract javaInterfaceContract = javaFactory.createJavaInterfaceContract();
- String interfaceName = reader.getAttributeValue(null, INTERFACE);
- if (interfaceName != null) {
- JavaInterface javaInterface = createJavaInterface(interfaceName);
- javaInterfaceContract.setInterface(javaInterface);
- }
-
- String callbackInterfaceName = reader.getAttributeValue(null, CALLBACK_INTERFACE);
- if (callbackInterfaceName != null) {
- JavaInterface javaCallbackInterface = createJavaInterface(callbackInterfaceName);
- javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
- }
-
- // Skip to end element
- while (reader.hasNext()) {
- if (reader.next() == END_ELEMENT && INTERFACE_JAVA_QNAME.equals(reader.getName())) {
- break;
- }
- }
- return javaInterfaceContract;
- }
-
- public void write(JavaInterfaceContract javaInterfaceContract, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
-
- // Write an <interface.java>
- writer.writeStartElement(Constants.SCA10_NS, INTERFACE_JAVA);
- JavaInterface javaInterface = (JavaInterface)javaInterfaceContract.getInterface();
-
- if (javaInterface != null && javaInterface.getName() != null) {
- writer.writeAttribute(INTERFACE, javaInterface.getName());
- }
-
- JavaInterface javaCallbackInterface = (JavaInterface)javaInterfaceContract.getCallbackInterface();
- if (javaCallbackInterface != null && javaCallbackInterface.getName() != null) {
- writer.writeAttribute(CALLBACK_INTERFACE, javaCallbackInterface.getName());
- }
-
- writer.writeEndElement();
- }
-
- private JavaInterface resolveJavaInterface(JavaInterface javaInterface, ModelResolver resolver) throws ContributionResolveException {
-
- if (javaInterface != null && javaInterface.isUnresolved()) {
-
- // Resolve the Java interface
- javaInterface = resolver.resolveModel(JavaInterface.class, javaInterface);
- if (javaInterface.isUnresolved()) {
-
- // If the Java interface has never been resolved yet, do it now
- ClassReference classReference = new ClassReference(javaInterface.getName());
- classReference = resolver.resolveModel(ClassReference.class, classReference);
- Class javaClass = classReference.getJavaClass();
- if (javaClass == null) {
- error("ClassNotFoundException", resolver, javaInterface.getName());
- return javaInterface;
- //throw new ContributionResolveException(new ClassNotFoundException(javaInterface.getName()));
- }
-
- try {
- // Introspect the Java interface and populate the interface and
- // operations
- javaFactory.createJavaInterface(javaInterface, javaClass);
-
- } catch (InvalidInterfaceException e) {
- ContributionResolveException ce = new ContributionResolveException(e);
- error("ContributionResolveException", javaFactory, ce);
- return javaInterface;
- //throw ce;
- }
-
- // Cache the resolved interface
- javaInterface.setUnresolved(false);
- resolver.addModel(javaInterface);
- }
- }
- return javaInterface;
- }
-
- public void resolve(JavaInterfaceContract javaInterfaceContract, ModelResolver resolver) throws ContributionResolveException {
-
- // Resolve the interface and callback interface
- JavaInterface javaInterface = resolveJavaInterface((JavaInterface)javaInterfaceContract.getInterface(), resolver);
- javaInterfaceContract.setInterface(javaInterface);
-
- JavaInterface javaCallbackInterface = resolveJavaInterface((JavaInterface)javaInterfaceContract.getCallbackInterface(), resolver);
- javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
- }
-
- public QName getArtifactType() {
- return INTERFACE_JAVA_QNAME;
- }
-
- public Class<JavaInterfaceContract> getModelType() {
- return JavaInterfaceContract.class;
- }
-}
diff --git a/java/sca/contrib/modules/interface-java-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/java/sca/contrib/modules/interface-java-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
deleted file mode 100644
index b3e52e5709..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.interfacedef.java.xml.JavaInterfaceProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#interface.java,model=org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract
diff --git a/java/sca/contrib/modules/interface-java-xml/src/main/resources/interface-javaxml-validation-messages.properties b/java/sca/contrib/modules/interface-java-xml/src/main/resources/interface-javaxml-validation-messages.properties
deleted file mode 100644
index bc0a7192b5..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/main/resources/interface-javaxml-validation-messages.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-ClassNotFoundException = Class Not Found Exception: {0}
-ContributionResolveException = ContributionResolveException occured due to :
diff --git a/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java b/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java
deleted file mode 100644
index 313f950873..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.xml;
-
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamReader;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
-import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-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.UtilityExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-
-/**
- * Test reading Java interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class ReadTestCase extends TestCase {
-
- private XMLInputFactory inputFactory;
- private XMLOutputFactory outputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
- private CompositeBuilder compositeBuilder;
-
- @Override
- public void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- inputFactory = XMLInputFactory.newInstance();
- outputFactory = XMLOutputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, null);
-
- ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
- AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
- SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
- IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
- compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null);
- }
-
- public void testReadComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- ComponentType componentType = (ComponentType)staxProcessor.read(reader);
- assertNotNull(componentType);
- }
-
- public void testReadConstrainingType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorComponent.constrainingType");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- ConstrainingType constrainingType = (ConstrainingType)staxProcessor.read(reader);
- assertNotNull(constrainingType);
- }
-
- public void testReadComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- Composite composite = (Composite)staxProcessor.read(reader);
- assertNotNull(composite);
-
- compositeBuilder.build(composite);
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java b/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java
deleted file mode 100644
index 55fc12d176..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/WriteTestCase.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.xml;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-
-/**
- * Test writing Java interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class WriteTestCase extends TestCase {
-
- private XMLInputFactory inputFactory;
- private XMLOutputFactory outputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
-
- @Override
- public void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- inputFactory = XMLInputFactory.newInstance();
- outputFactory = XMLOutputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, null);
- }
-
- public void testReadWriteComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- ComponentType componentType = (ComponentType)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(componentType);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(componentType, outputFactory.createXMLStreamWriter(bos));
- }
-
- public void testReadWriteConstrainingType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorComponent.constrainingType");
- ConstrainingType constrainingType = (ConstrainingType)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(constrainingType);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(constrainingType, outputFactory.createXMLStreamWriter(bos));
- }
-
- public void testReadWriteComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- Composite composite = (Composite)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(composite);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos));
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite b/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
deleted file mode 100644
index 3de6410596..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:calc="http://sample.calculator"
- targetNamespace="http://calc"
- name="Calculator">
-
- <service name="CalculatorService" promote="CalculatorServiceComponent">
- <interface.java interface="calculator.CalculatorService"/>
- </service>
-
- <component name="CalculatorServiceComponent">
- <implementation.java class="calculator.CalculatorServiceImpl"/>
- <reference name="addService" target="AddServiceComponent"/>
- <reference name="subtractService" target="SubtractServiceComponent"/>
- <reference name="multiplyService" target="MultiplyServiceComponent"/>
- <reference name="divideService" target="DivideServiceComponent"/>
- </component>
-
- <component name="AddServiceComponent">
- <implementation.java class="calculator.AddServiceImpl"/>
- </component>
-
- <component name="SubtractServiceComponent">
- <implementation.java class="calculator.SubtractServiceImpl"/>
- </component>
-
- <component name="MultiplyServiceComponent">
- <implementation.java class="calculator.MultiplyServiceImpl"/>
- </component>
-
- <component name="DivideServiceComponent">
- <implementation.java class="calculator.DivideServiceImpl"/>
- </component>
-
-</composite>
diff --git a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorComponent.constrainingType b/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorComponent.constrainingType
deleted file mode 100644
index dca38c9224..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorComponent.constrainingType
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<constrainingType xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:calc="http://calc"
- targetNamespace="http://calc"
- name="CalculatorComponent">
-
- <service name="CalculatorService">
- <interface.java interface="calculator.CalculatorService" />
- </service>
-
- <reference name="divideService">
- <interface.java interface="calculator.DivideService" />
- </reference>
-
-</constrainingType>
- \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType b/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType
deleted file mode 100644
index 23ebf576e5..0000000000
--- a/java/sca/contrib/modules/interface-java-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/CalculatorImpl.componentType
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0">
-
- <service name="CalculatorService">
- <interface.java interface="calculator.CalculatorService" />
- </service>
-
- <reference name="divideService">
- <interface.java interface="calculator.DivideService" />
- </reference>
-
-</componentType>
- \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-java/LICENSE b/java/sca/contrib/modules/interface-java/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface-java/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface-java/META-INF/MANIFEST.MF b/java/sca/contrib/modules/interface-java/META-INF/MANIFEST.MF
deleted file mode 100644
index 841d126cca..0000000000
--- a/java/sca/contrib/modules/interface-java/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,38 +0,0 @@
-Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.interfacedef.java.impl;uses:="o
- rg.osoa.sca.annotations,org.apache.tuscany.sca.interfacedef.util,org.
- apache.tuscany.sca.policy,org.apache.tuscany.sca.interfacedef.java,or
- g.apache.tuscany.sca.interfacedef,javax.xml.namespace,org.apache.tusc
- any.sca.interfacedef.java.introspect,org.apache.tuscany.sca.interface
- def.impl";version="2.0",org.apache.tuscany.sca.interfacedef.java.intr
- ospect;uses:="org.apache.tuscany.sca.interfacedef.java,org.apache.tus
- cany.sca.interfacedef";version="2.0",org.apache.tuscany.sca.interface
- def.java;uses:="org.apache.tuscany.sca.assembly,org.apache.tuscany.sc
- a.interfacedef.java.impl,org.apache.tuscany.sca.interfacedef.java.int
- rospect,org.apache.tuscany.sca.core,org.apache.tuscany.sca.policy,org
- .apache.tuscany.sca.interfacedef,org.apache.tuscany.sca.extensibility
- ,javax.xml.namespace";version="2.0"
-Tool: Bnd-0.0.255
-Bundle-Name: Apache Tuscany SCA Java Interface Model
-Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0
-Bnd-LastModified: 1225397130359
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Java Interface Model
-Import-Package: javax.xml.namespace,
- org.apache.tuscany.sca.assembly;version="2.0",
- org.apache.tuscany.sca.core;version="2.0",
- org.apache.tuscany.sca.extensibility;version="2.0",
- org.apache.tuscany.sca.interfacedef;version="2.0",
- org.apache.tuscany.sca.interfacedef.impl;version="2.0",
- org.apache.tuscany.sca.interfacedef.java;version="2.0",
- org.apache.tuscany.sca.interfacedef.java.impl;version="2.0",
- org.apache.tuscany.sca.interfacedef.java.introspect;version="2.0",
- org.apache.tuscany.sca.interfacedef.util;version="2.0",
- org.apache.tuscany.sca.policy;version="2.0",
- org.oasisopen.sca.annotation;version="2.0"
-Bundle-SymbolicName: org.apache.tuscany.sca.interface.java
-Bundle-DocURL: http://www.apache.org/
-
diff --git a/java/sca/contrib/modules/interface-java/NOTICE b/java/sca/contrib/modules/interface-java/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface-java/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface-java/pom.xml b/java/sca/contrib/modules/interface-java/pom.xml
deleted file mode 100644
index 39e96a4ce8..0000000000
--- a/java/sca/contrib/modules/interface-java/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface-java</artifactId>
- <name>Apache Tuscany SCA Java Interface Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-extensibility</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-sca-api</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
-
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface.java</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef.java*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
deleted file mode 100644
index 7853b597d3..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
-import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl;
-import org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-
-/**
- * A factory for the Java interface model.
- *
- * @version $Rev$ $Date$
- */
-public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
- private ModelFactoryExtensionPoint modelFactoryExtensionPoint;
- private boolean loadedVisitors;
-
- public DefaultJavaInterfaceFactory() {
- }
-
- public DefaultJavaInterfaceFactory(ModelFactoryExtensionPoint modelFactoryExtensionPoint) {
- this.modelFactoryExtensionPoint = modelFactoryExtensionPoint;
- }
-
- @Override
- public List<JavaInterfaceVisitor> getInterfaceVisitors() {
- loadVisitors();
- return super.getInterfaceVisitors();
- }
-
- /**
- * Load visitors declared under META-INF/services
- */
- @SuppressWarnings("unchecked")
- private void loadVisitors() {
- if (loadedVisitors)
- return;
-
- if (modelFactoryExtensionPoint != null) {
- PolicyFactory policyFactory = modelFactoryExtensionPoint.getFactory(PolicyFactory.class);
- if (policyFactory != null) {
- addInterfaceVisitor(new PolicyJavaInterfaceVisitor(policyFactory));
- }
- }
-
- // Get the databinding service declarations
- Set<ServiceDeclaration> visitorDeclarations;
- try {
- visitorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(JavaInterfaceVisitor.class);
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
-
- // Load data bindings
- for (ServiceDeclaration visitorDeclaration: visitorDeclarations) {
- JavaInterfaceVisitor visitor;
- try {
- Class<JavaInterfaceVisitor> visitorClass = (Class<JavaInterfaceVisitor>)visitorDeclaration.loadClass();
- visitor = visitorClass.newInstance();
- } catch (ClassNotFoundException e) {
- throw new IllegalArgumentException(e);
- } catch (InstantiationException e) {
- throw new IllegalArgumentException(e);
- } catch (IllegalAccessException e) {
- throw new IllegalArgumentException(e);
- }
- addInterfaceVisitor(visitor);
- }
-
- loadedVisitors = true;
- }
-
-
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java
deleted file mode 100644
index 9c09ef50c2..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterface.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java;
-
-import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.assembly.Base;
-import org.apache.tuscany.sca.interfacedef.Interface;
-
-/**
- * Represents a Java interface.
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterface extends Interface, Base {
-
- /**
- * Returns the name of the Java interface class.
- *
- * @return the name of the Java interface class
- */
- String getName();
-
- /**
- * Sets the name of the Java interface class.
- *
- * @param className the name of the Java interface class
- */
- void setName(String className);
-
- /**
- * Returns the QName of the JAX-WS interface.
- *
- * @return the QName of the JAX-WS interface
- */
- QName getQName();
-
- /**
- * Sets the QName of the JAX-WS interface.
- *
- * @param interfaceName the QName of the JAX-WS interface
- */
- void setQName(QName interfaceName);
-
- /**
- * Returns the Java interface class.
- *
- * @return the Java interface class
- */
- Class<?> getJavaClass();
-
- /**
- * Sets the Java interface class.
- *
- * @param javaClass the Java interface class
- */
- void setJavaClass(Class<?> javaClass);
-
- /**
- * Returns the callback class specified in an @Callback annotation.
- *
- * @return the callback class specified in an @Callback annotation
- */
- Class<?> getCallbackClass();
-
- /**
- * Sets the callback class specified in an @Callback annotation.
- *
- * @param callbackClass the callback class specified in an @Callback annotation
- */
- void setCallbackClass(Class<?> callbackClass);
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java
deleted file mode 100644
index e3a84c63f0..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceContract.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java;
-
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-
-/**
- * Represents a Java interface contract.
- * JavaInterfaceContract
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceContract extends InterfaceContract {
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java
deleted file mode 100644
index 9225926269..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaInterfaceFactory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-
-/**
- * Factory for the Java interface model
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceFactory {
-
- /**
- * Creates a new Java interface model.
- *
- * @return
- */
- JavaInterface createJavaInterface();
-
- /**
- * Creates a new Java interface model from an interface class.
- * @param interfaceClass the interface class to introspect.
- * @return
- */
- JavaInterface createJavaInterface(Class<?> interfaceClass) throws InvalidInterfaceException;
-
- /**
- * Creates the contents of a Java interface model from an interface class.
- * @param javaInterface the Java interface model
- * @param interfaceClass the interface class to introspect.
- * @return
- */
- void createJavaInterface(JavaInterface javaInterface, Class<?> interfaceClass) throws InvalidInterfaceException;
-
- /**
- * Creates a new Java interface contract.
- *
- * @return
- */
- JavaInterfaceContract createJavaInterfaceContract();
-
- /**
- * Registers the given visitor.
- *
- * @param visitor
- */
- void addInterfaceVisitor(JavaInterfaceVisitor visitor);
-
- /**
- * Deregisters the given visitor.
- *
- * @param visitor
- */
- void removeInterfaceVisitor(JavaInterfaceVisitor visitor);
-
- /**
- * Returns a list of interface visitors.
- *
- * @return
- */
- List<JavaInterfaceVisitor> getInterfaceVisitors();
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java
deleted file mode 100644
index e6cb35cc4b..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/JavaOperation.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java;
-
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * Represents a Java operation.
- *
- * @version $Rev$ $Date$
- */
-public interface JavaOperation extends Operation {
-
- /**
- * Returns the Java method defining the operation.
- * @return the Java method
- */
- Method getJavaMethod();
-
- /**
- * Sets the Java method defining the operation.
- * @param method the Java method
- */
- void setJavaMethod(Method method);
-
- /**
- * Returns the JAX-WS @WebMethod action parameter.
- * @return the action value
- */
- String getAction();
-
- /**
- * Sets the JAX-WS @WebMethod action parameter.
- * @param action the action value
- */
- void setAction(String action);
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java
deleted file mode 100644
index d43ebe558b..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceContractImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-
-/**
- * Represents a Java interface contract.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceContractImpl extends InterfaceContractImpl implements JavaInterfaceContract {
-
- protected JavaInterfaceContractImpl() {
- }
-
- @Override
- public JavaInterfaceContractImpl clone() throws CloneNotSupportedException {
- return (JavaInterfaceContractImpl) super.clone();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java
deleted file mode 100644
index 1454851fb1..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceFactoryImpl.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-
-/**
- * A factory for the Java model.
- *
- * @version $Rev$ $Date$
- */
-public abstract class JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
-
- private List<JavaInterfaceVisitor> visitors = new ArrayList<JavaInterfaceVisitor>();
- private JavaInterfaceIntrospectorImpl introspector;
- private Map<Class<?>, JavaInterface> cache = Collections.synchronizedMap(new WeakHashMap<Class<?>, JavaInterface>());
-
- public JavaInterfaceFactoryImpl() {
- introspector = new JavaInterfaceIntrospectorImpl(this);
- }
-
- public JavaInterface createJavaInterface() {
- return new JavaInterfaceImpl();
- }
-
- public JavaInterface createJavaInterface(Class<?> interfaceClass) throws InvalidInterfaceException {
- // TODO: Review if the sharing of JavaInterface is ok
- synchronized (interfaceClass) {
- JavaInterface javaInterface = cache.get(interfaceClass);
- if (javaInterface == null) {
- javaInterface = createJavaInterface();
- introspector.introspectInterface(javaInterface, interfaceClass);
- cache.put(interfaceClass, javaInterface);
- }
- return javaInterface;
- }
- }
-
- public void createJavaInterface(JavaInterface javaInterface, Class<?> interfaceClass) throws InvalidInterfaceException {
- introspector.introspectInterface(javaInterface, interfaceClass);
- }
-
- public JavaInterfaceContract createJavaInterfaceContract() {
- return new JavaInterfaceContractImpl();
- }
-
- public void addInterfaceVisitor(JavaInterfaceVisitor extension) {
- visitors.add(extension);
- }
-
- public void removeInterfaceVisitor(JavaInterfaceVisitor extension) {
- visitors.remove(extension);
- }
-
- public List<JavaInterfaceVisitor> getInterfaceVisitors() {
- return visitors;
- }
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
deleted file mode 100644
index 42e45317b7..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-
-/**
- * Represents a Java interface.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceImpl extends InterfaceImpl implements JavaInterface {
-
- private String className;
- private Class<?> javaClass;
- private Class<?> callbackClass;
- private QName qname;
-
- protected JavaInterfaceImpl() {
- }
-
- public String getName() {
- if (isUnresolved()) {
- return className;
- } else if (javaClass != null) {
- return javaClass.getName();
- } else {
- return null;
- }
- }
-
- public void setName(String className) {
- if (!isUnresolved()) {
- throw new IllegalStateException();
- }
- this.className = className;
- }
-
- public QName getQName() {
- return qname;
- }
-
- public void setQName(QName interfacename) {
- qname = interfacename;
- }
-
- public Class<?> getJavaClass() {
- return javaClass;
- }
-
- public void setJavaClass(Class<?> javaClass) {
- this.javaClass = javaClass;
- }
-
- public Class<?> getCallbackClass() {
- return callbackClass;
- }
-
- public void setCallbackClass(Class<?> callbackClass) {
- this.callbackClass = callbackClass;
- }
-
- @Override
- public String toString() {
- return getName();
- }
-
- @Override
- public int hashCode() {
- return String.valueOf(getName()).hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- } else if (obj instanceof JavaInterface) {
- if (getName() != null) {
- return getName().equals(((JavaInterface)obj).getName());
- } else {
- return ((JavaInterface)obj).getName() == null;
- }
- } else {
- return false;
- }
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
deleted file mode 100644
index b33640bd58..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidCallbackException;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.InvalidOperationException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.OverloadedOperationException;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.oasisopen.sca.annotation.Conversational;
-import org.oasisopen.sca.annotation.EndsConversation;
-import org.oasisopen.sca.annotation.OneWay;
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * Default implementation of a Java interface introspector.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceIntrospectorImpl {
- public static final String IDL_INPUT = "idl:input";
-
- private static final String UNKNOWN_DATABINDING = null;
-
- private List<JavaInterfaceVisitor> visitors = new ArrayList<JavaInterfaceVisitor>();
-
- public JavaInterfaceIntrospectorImpl(JavaInterfaceFactory javaFactory) {
- this.visitors = javaFactory.getInterfaceVisitors();
- }
-
- public void introspectInterface(JavaInterface javaInterface, Class<?> clazz)
- throws InvalidInterfaceException {
- javaInterface.setJavaClass(clazz);
-
- boolean remotable = clazz.isAnnotationPresent(Remotable.class);
-
- // Consider @javax.ejb.Remote, java.rmi.Remote and javax.ejb.EJBObject
- // equivalent to @Remotable
- if (!remotable) {
- for (Annotation annotation : clazz.getAnnotations()) {
- if ("javax.ejb.Remote".equals(annotation.annotationType().getName())) {
- remotable = true;
- break;
- }
- }
- }
- if (!remotable) {
- for (Class<?> superInterface : clazz.getInterfaces()) {
- if (Remote.class == superInterface || "javax.ejb.EJBObject".equals(superInterface.getName())) {
- remotable = true;
- break;
- }
- }
- }
-
- javaInterface.setRemotable(remotable);
-
- boolean conversational = clazz.isAnnotationPresent(Conversational.class);
- javaInterface.setConversational(conversational);
-
- Class<?> callbackClass = null;
- org.oasisopen.sca.annotation.Callback callback = clazz.getAnnotation(org.oasisopen.sca.annotation.Callback.class);
- if (callback != null && !Void.class.equals(callback.value())) {
- callbackClass = callback.value();
- if (remotable && !callbackClass.isAnnotationPresent(Remotable.class)) {
- throw new InvalidCallbackException("Callback must be remotable on a remotable interface");
- }
- if (!remotable && callbackClass.isAnnotationPresent(Remotable.class)) {
- throw new InvalidCallbackException("Callback must not be remotable on a local interface");
- }
- } else if (callback != null && Void.class.equals(callback.value())) {
- throw new InvalidCallbackException("No callback interface specified on annotation");
- }
-
- javaInterface.setCallbackClass(callbackClass);
-
- String ns = JavaXMLMapper.getNamespace(clazz);
- javaInterface.getOperations().addAll(getOperations(clazz, remotable, conversational, ns));
-
- for (JavaInterfaceVisitor extension : visitors) {
- extension.visitInterface(javaInterface);
- }
- }
-
- private Class<?>[] getActualTypes(Type[] types, Class<?>[] rawTypes, Map<String, Type> typeBindings) {
- Class<?>[] actualTypes = new Class<?>[types.length];
- for (int i = 0; i < actualTypes.length; i++) {
- actualTypes[i] = getActualType(types[i], rawTypes[i], typeBindings);
- }
- return actualTypes;
- }
-
- private Class<?> getActualType(Type type, Class<?> rawType, Map<String, Type> typeBindings) {
- if (type instanceof TypeVariable<?>) {
- TypeVariable<?> typeVariable = (TypeVariable<?>)type;
- type = typeBindings.get(typeVariable.getName());
- if (type instanceof Class<?>) {
- return (Class<?>)type;
- }
- }
- return rawType;
- }
-
- private <T> List<Operation> getOperations(Class<T> clazz,
- boolean remotable,
- boolean conversational,
- String ns) throws InvalidInterfaceException {
-
- Set<Type> genericInterfaces = new HashSet<Type>();
- for (Type t : clazz.getGenericInterfaces()) {
- genericInterfaces.add(t);
- }
- Map<String, Type> typeBindings = new HashMap<String, Type>();
- for (Type genericInterface : genericInterfaces) {
- if (genericInterface instanceof ParameterizedType) {
- ParameterizedType parameterizedType = (ParameterizedType)genericInterface;
- TypeVariable<?>[] typeVariables = ((Class<?>)parameterizedType.getRawType()).getTypeParameters();
- Type[] typeArguments = parameterizedType.getActualTypeArguments();
- for (int i = 0; i < typeArguments.length; i++) {
- typeBindings.put(typeVariables[i].getName(), typeArguments[i]);
- }
- }
- }
-
- Method[] methods = clazz.getMethods();
- List<Operation> operations = new ArrayList<Operation>(methods.length);
- Set<String> names = remotable ? new HashSet<String>() : null;
- for (Method method : methods) {
- if (method.getDeclaringClass() == Object.class) {
- // Skip the methods on the Object.class
- continue;
- }
- String name = method.getName();
- if (remotable && names.contains(name)) {
- throw new OverloadedOperationException(method);
- }
- if (remotable) {
- names.add(name);
- }
-
- Class<?> returnType = getActualType(method.getGenericReturnType(), method.getReturnType(), typeBindings);
- Class<?>[] parameterTypes =
- getActualTypes(method.getGenericParameterTypes(), method.getParameterTypes(), typeBindings);
- Class<?>[] faultTypes =
- getActualTypes(method.getGenericExceptionTypes(), method.getExceptionTypes(), typeBindings);
-
- boolean nonBlocking = method.isAnnotationPresent(OneWay.class);
- if (nonBlocking) {
- if (!(returnType == void.class)) {
- throw new InvalidOperationException(
- "Method should return 'void' when declared with an @OneWay annotation. " + method,
- method);
- }
- if (!(faultTypes.length == 0)) {
- throw new InvalidOperationException(
- "Method should not declare exceptions with an @OneWay annotation. " + method,
- method);
- }
- }
-
- ConversationSequence conversationSequence = ConversationSequence.CONVERSATION_NONE;
- if (method.isAnnotationPresent(EndsConversation.class)) {
- if (!conversational) {
- throw new InvalidOperationException(
- "Method is marked as end conversation but contract is not conversational",
- method);
- }
- conversationSequence = ConversationSequence.CONVERSATION_END;
- } else if (conversational) {
- conversationSequence = ConversationSequence.CONVERSATION_CONTINUE;
- }
-
- // Set outputType to null for void
- XMLType xmlReturnType = new XMLType(new QName(ns, "return"), null);
- DataType<XMLType> returnDataType =
- returnType == void.class ? null : new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, returnType, method
- .getGenericReturnType(), xmlReturnType);
- List<DataType> paramDataTypes = new ArrayList<DataType>(parameterTypes.length);
- Type[] genericParamTypes = method.getGenericParameterTypes();
- for (int i = 0; i < parameterTypes.length; i++) {
- Class paramType = parameterTypes[i];
- XMLType xmlParamType = new XMLType(new QName(ns, "arg" + i), null);
- paramDataTypes.add(new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, paramType, genericParamTypes[i],
- xmlParamType));
- }
- List<DataType> faultDataTypes = new ArrayList<DataType>(faultTypes.length);
- Type[] genericFaultTypes = method.getGenericExceptionTypes();
- for (int i = 0; i < faultTypes.length; i++) {
- Class<?> faultType = faultTypes[i];
- // Only add checked exceptions
- // JAXWS Specification v2.1 section 3.7 says RemoteException should not be mapped
- if (Exception.class.isAssignableFrom(faultType) && (!RuntimeException.class.isAssignableFrom(faultType))
- && (!RemoteException.class.isAssignableFrom(faultType))) {
- XMLType xmlFaultType = new XMLType(new QName(ns, faultType.getSimpleName()), null);
- DataType<XMLType> faultDataType =
- new DataTypeImpl<XMLType>(UNKNOWN_DATABINDING, faultType, genericFaultTypes[i], xmlFaultType);
- faultDataTypes.add(new DataTypeImpl<DataType>(UNKNOWN_DATABINDING, faultType, genericFaultTypes[i],
- faultDataType));
- }
- }
-
- DataType<List<DataType>> inputType =
- new DataTypeImpl<List<DataType>>(IDL_INPUT, Object[].class, paramDataTypes);
- JavaOperation operation = new JavaOperationImpl();
- operation.setName(name);
- operation.setInputType(inputType);
- operation.setOutputType(returnDataType);
- operation.setFaultTypes(faultDataTypes);
- operation.setConversationSequence(conversationSequence);
- operation.setNonBlocking(nonBlocking);
- operation.setJavaMethod(method);
- operations.add(operation);
- }
- return operations;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
deleted file mode 100644
index 2a9e3c5329..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-
-/**
- * Contains methods for mapping between an operation in a
- * {@link org.apache.tuscany.spi.model.ServiceContract} and a method defined by
- * a Java interface
- *
- * @version $Rev$ $Date$
- */
-public final class JavaInterfaceUtil {
-
- private JavaInterfaceUtil() {
- }
-
- /**
- * Return the method on the implementation class that matches the operation.
- *
- * @param implClass the implementation class or interface
- * @param operation the operation to match
- * @return the method described by the operation
- * @throws NoSuchMethodException if no such method exists
- * @Deprecated
- */
- public static Method findMethod(Class<?> implClass, Operation operation) throws NoSuchMethodException {
- String name = operation.getName();
- if (operation instanceof JavaOperation) {
- name = ((JavaOperation)operation).getJavaMethod().getName();
- }
- Interface interface1 = operation.getInterface();
- int numParams = operation.getInputType().getLogical().size();
- if (interface1 != null && interface1.isRemotable()) {
- List<Method> matchingMethods = new ArrayList<Method>();
- for (Method m : implClass.getMethods()) {
- if (m.getName().equals(name) && m.getParameterTypes().length == numParams) {
- matchingMethods.add(m);
- }
- }
-
- // TUSCANY-2180 If there is only one method then we just match on the name
- // (this is the same as the existing behaviour)
- if (matchingMethods.size() == 1) {
- return matchingMethods.get(0);
- }
- if (matchingMethods.size() > 1) {
- // TUSCANY-2180 We need to check the parameter types too
- Class<?>[] paramTypes = getPhysicalTypes(operation);
- return implClass.getMethod(name, paramTypes);
- }
-
- // No matching method found
- throw new NoSuchMethodException("No matching method for operation " + operation.getName()
- + " is found on "
- + implClass);
- }
- Class<?>[] paramTypes = getPhysicalTypes(operation);
- return implClass.getMethod(name, paramTypes);
- }
-
- /**
- * @Deprecated
- */
- private static Class<?>[] getPhysicalTypes(Operation operation) {
- DataType<List<DataType>> inputType = operation.getInputType();
- if (inputType == null) {
- return new Class<?>[] {};
- }
- List<DataType> types = inputType.getLogical();
- Class<?>[] javaTypes = new Class<?>[types.size()];
- for (int i = 0; i < javaTypes.length; i++) {
- Type physical = types.get(i).getPhysical();
- if (physical instanceof Class<?>) {
- javaTypes[i] = (Class<?>)physical;
- } else {
- throw new UnsupportedOperationException();
- }
- }
- return javaTypes;
- }
-
- /**
- * Searches a collection of operations for a match against the given method
- *
- * @param method the method to match
- * @param operations the operations to match against
- * @return a matching operation or null
- * @Deprecated
- */
- public static Operation findOperation(Method method, Collection<Operation> operations) {
- for (Operation operation : operations) {
- if (match(operation, method)) {
- return operation;
- }
- }
- return null;
- }
-
- /**
- * Determines if the given operation matches the given method
- *
- * @return true if the operation matches, false if does not
- */
- private static boolean match(Operation operation, Method method) {
- Class<?>[] params = method.getParameterTypes();
- DataType<List<DataType>> inputType = operation.getInputType();
- List<DataType> types = inputType.getLogical();
- boolean found = true;
- if (types.size() == params.length && method.getName().equals(operation.getName())) {
- for (int i = 0; i < params.length; i++) {
- Class<?> clazz = params[i];
- if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
- found = false;
- }
- }
- } else {
- found = false;
- }
- return found;
-
- }
-
- private static String getPackageName(Class<?> cls) {
- String name = cls.getName();
- int index = name.lastIndexOf('.');
- return index == -1 ? "" : name.substring(0, index);
- }
-
- public static String getNamespace(Class<?> cls) {
- String packageName = getPackageName(cls);
- if ("".equals(packageName)) {
- return "";
- }
- StringBuffer ns = new StringBuffer("http://");
- String[] names = packageName.split("\\.");
- for (int i = names.length - 1; i >= 0; i--) {
- ns.append(names[i]);
- if (i != 0) {
- ns.append('.');
- }
- }
- ns.append('/');
- return ns.toString();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java
deleted file mode 100644
index 4384213bf5..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaOperationImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-
-/**
- * Represents a Java operation.
- *
- * @version $Rev$ $Date$
- */
-public class JavaOperationImpl extends OperationImpl implements JavaOperation {
-
- private Method method;
- private String action;
-
- public Method getJavaMethod() {
- return method;
- }
-
- public void setJavaMethod(Method method) {
- this.method = method;
- }
-
- public String getAction() {
- return action;
- }
-
- public void setAction(String action) {
- this.action = action;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((method == null) ? 0 : method.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (!super.equals(obj))
- return false;
- if (getClass() != obj.getClass())
- return false;
- final JavaOperationImpl other = (JavaOperationImpl)obj;
- if (method == null) {
- if (other.method != null)
- return false;
- } else if (!method.equals(other.method))
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- return method == null ? "null" : method.toGenericString();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java
deleted file mode 100644
index bf80bef175..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaOperation;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.oasisopen.sca.annotation.PolicySets;
-import org.oasisopen.sca.annotation.Requires;
-
-/**
- * Processes an {@link org.oasisopen.sca.annotation.Requires} annotation
- *
- * @version $Rev$ $Date$
- */
-public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor {
- private PolicyFactory policyFactory;
-
- public PolicyJavaInterfaceVisitor(PolicyFactory policyFactory) {
- super();
- this.policyFactory = policyFactory;
- }
-
- private QName getQName(String intentName) {
- QName qname;
- if (intentName.startsWith("{")) {
- int i = intentName.indexOf('}');
- if (i != -1) {
- qname = new QName(intentName.substring(1, i), intentName.substring(i + 1));
- } else {
- qname = new QName("", intentName);
- }
- } else {
- qname = new QName("", intentName);
- }
- return qname;
- }
-
- /**
- * Read policy intents on the given interface or class
- * @param clazz
- * @param requiredIntents
- */
- private void readIntentsAndPolicySets(Class<?> clazz, List<Intent> requiredIntents, List<PolicySet> policySets) {
- Requires intentAnnotation = clazz.getAnnotation(Requires.class);
- if (intentAnnotation != null) {
- String[] intentNames = intentAnnotation.value();
- if (intentNames.length != 0) {
- for (String intentName : intentNames) {
-
- // Add each intent to the list
- Intent intent = policyFactory.createIntent();
- intent.setName(getQName(intentName));
- requiredIntents.add(intent);
- }
- }
- }
-
- PolicySets policySetAnnotation = clazz.getAnnotation(PolicySets.class);
- if (policySetAnnotation != null) {
- String[] policySetNames = policySetAnnotation.value();
- if (policySetNames.length != 0) {
- for (String policySetName : policySetNames) {
-
- // Add each intent to the list
- PolicySet policySet = policyFactory.createPolicySet();
- policySet.setName(getQName(policySetName));
- policySets.add(policySet);
- }
- }
- }
- }
-
- private void readIntents(Requires intentAnnotation, List<Intent> requiredIntents) {
- //Requires intentAnnotation = method.getAnnotation(Requires.class);
- if (intentAnnotation != null) {
- String[] intentNames = intentAnnotation.value();
- if (intentNames.length != 0) {
- //Operation operation = assemblyFactory.createOperation();
- //operation.setName(method.getName());
- //operation.setUnresolved(true);
- for (String intentName : intentNames) {
-
- // Add each intent to the list, associated with the
- // operation corresponding to the annotated method
- Intent intent = policyFactory.createIntent();
- intent.setName(getQName(intentName));
- //intent.getOperations().add(operation);
- requiredIntents.add(intent);
- }
- }
- }
- }
-
- private void readPolicySets(PolicySets policySetAnnotation, List<PolicySet> policySets) {
- if (policySetAnnotation != null) {
- String[] policySetNames = policySetAnnotation.value();
- if (policySetNames.length != 0) {
- //Operation operation = assemblyFactory.createOperation();
- //operation.setName(method.getName());
- //operation.setUnresolved(true);
- for (String policySetName : policySetNames) {
- // Add each intent to the list, associated with the
- // operation corresponding to the annotated method
- PolicySet policySet = policyFactory.createPolicySet();
- policySet.setName(getQName(policySetName));
- //intent.getOperations().add(operation);
- policySets.add(policySet);
- }
- }
- }
- }
-
- public void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException {
-
- if (javaInterface.getJavaClass() != null) {
- readIntentsAndPolicySets(javaInterface.getJavaClass(), javaInterface.getRequiredIntents(), javaInterface
- .getPolicySets());
-
- // Read intents on the service interface methods
- List<Operation> operations = javaInterface.getOperations();
- for (Operation op : operations) {
- JavaOperation operation = (JavaOperation)op;
- Method method = operation.getJavaMethod();
- if (method.getAnnotation(Requires.class) != null || method.getAnnotation(PolicySets.class) != null) {
- readIntents(method.getAnnotation(Requires.class), op.getRequiredIntents());
- readPolicySets(method.getAnnotation(PolicySets.class), op.getPolicySets());
- }
- }
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java b/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java
deleted file mode 100644
index 3bc03a528e..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/introspect/JavaInterfaceVisitor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.introspect;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-
-/**
- * Implementations introspect metadata on a Java interface, populating the
- * corresponding {@link JavaInterface}
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceVisitor {
-
- /**
- * Visit a java interface
- * @param javaInterface
- * @throws InvalidInterfaceException
- */
- void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException;
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory b/java/sca/contrib/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory
deleted file mode 100644
index 5ba12ec137..0000000000
--- a/java/sca/contrib/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java b/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java
deleted file mode 100644
index d7331402ec..0000000000
--- a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.OverloadedOperationException;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl;
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.oasisopen.sca.annotation.Remotable;
-
-/**
- * This test case will test that a Component that has multiple Remotable interfaces
- * that contain methods with the same name will correctly select the right method.
- *
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceUtilDuplicateRemotableTestCase extends TestCase {
-
- /**
- * Test to get the getTime() method from the LocalTimeService
- *
- * @throws Exception Test failed
- */
- public void testLocalTimeServiceGetTime() throws Exception {
- doTestLocalTimeServiceGetTime(LocalTimeService.class);
- }
-
- /**
- * Test to get the getTime() method from the LocalTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the LocalTimeService
- * @throws Exception Test failed
- */
- private void doTestLocalTimeServiceGetTime(Class timeServiceClass) throws Exception {
- // Add a getTime() method
- Operation operation = newOperation("getTime", LocalTimeService.class);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(0, method.getParameterTypes().length);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService
- *
- * @throws Exception Test failed
- */
- public void testWorldTimeServiceGetTime() throws Exception {
- doTestWorldTimeServiceGetTime(WorldTimeService.class);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the WorldTimeService
- * @throws Exception Test failed
- */
- private void doTestWorldTimeServiceGetTime(Class timeServiceClass) throws Exception {
- // Add a getTime(String) method
- Operation operation = newOperation("getTime", WorldTimeService.class, String.class);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(1, method.getParameterTypes().length);
- assertEquals(String.class, method.getParameterTypes()[0]);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService
- *
- * @throws Exception Test failed
- */
- public void testGMTTimeServiceGetTime() throws Exception {
- doTestGMTTimeServiceGetTime(GMTTimeService.class);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService interface from
- * the specified class
- *
- * @param timeServiceClass The class that implements the WorldTimeService
- * @throws Exception Test failed
- */
- private void doTestGMTTimeServiceGetTime(Class timeServiceClass) throws Exception {
- // Add a getTime(String) method
- Operation operation = newOperation("getTime", GMTTimeService.class, Integer.TYPE);
-
- Method method = JavaInterfaceUtil.findMethod(timeServiceClass, operation);
- assertEquals("getTime", method.getName());
- assertEquals(1, method.getParameterTypes().length);
- assertEquals(Integer.TYPE, method.getParameterTypes()[0]);
- }
-
-
- /**
- * Test to get the getTime() method from the LocalTimeService on the
- * TimeServiceImpl class
- *
- * @throws Exception Test failed
- */
- public void testLocalTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestLocalTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Test to get the getTime(String) method from the WorldTimeService on the
- * TimeServiceImpl class
- *
- * @throws Exception Test failed
- */
- public void testWorldTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestWorldTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Test to get the getTime(int) method from the GMTTimeService
- *
- * @throws Exception Test failed
- */
- public void testGMTTimeServiceGetTimeFromTimeServiceImpl() throws Exception {
- doTestGMTTimeServiceGetTime(TimeServiceImpl.class);
- }
-
- /**
- * Creates a new operation with the specified name and parameter types
- *
- * @param name The name of the operation
- * @param operationInterface The interface to which the operation belongs
- * @param parameterTypes The types of the parameters for this operation
- * @return An operation with the specified name and parameter types
- */
- private static Operation newOperation(String name, Class operationInterface, Class... parameterTypes) {
- // Create and set the operation name
- Operation operation = new OperationImpl();
- operation.setName(name);
-
- // Make the operation remotable
- Interface iface = new InterfaceImpl();
- iface.setRemotable(true);
- operation.setInterface(iface);
-
- // Construct the parameters
- List<DataType> types = new ArrayList<DataType>();
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- for (Class parameterType : parameterTypes) {
- DataType type = new DataTypeImpl<Class>(parameterType, Object.class);
- types.add(type);
- }
- operation.setInputType(inputType);
-
- // Return the created operation
- return operation;
- }
-
- /**
- * Test case that validates that a @Remotable interface with Overloaded operations
- * is detected.
- *
- * This test case is for TUSCANY-2194
- */
- public void testDuplicateOpeartionOnRemotableInterface()
- {
- JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory();
- JavaInterfaceIntrospectorImpl introspector = new JavaInterfaceIntrospectorImpl(javaFactory);
- JavaInterfaceImpl javaInterface = new JavaInterfaceImpl();
-
- try {
- introspector.introspectInterface(javaInterface, DuplicateMethodOnRemotableInterface.class);
- Assert.fail("Should have thrown an exception as @Remotable interface has overloaded methods");
- } catch (OverloadedOperationException ex) {
- // As expected
- // Make sure that the class and method names are in the exception
- String exMsg = ex.toString();
- Assert.assertTrue("Method name missing from exception", exMsg.indexOf("aDuplicateMethod") != -1);
- Assert.assertTrue("Class name missing from exception",
- exMsg.indexOf(DuplicateMethodOnRemotableInterface.class.getName()) != -1);
- } catch (InvalidInterfaceException ex) {
- // Should have thrown OverloadedOperationException
- Assert.fail("Should have thrown an OverloadedOperationException but threw " + ex);
- }
- }
-
-
- /**
- * Sample @Remotable interface that has an overloaded operation which is not
- * allowed according to the SCA Assembly Specification.
- */
- @Remotable
- private interface DuplicateMethodOnRemotableInterface {
- void aNonDuplicateMethod();
- void aDuplicateMethod();
- void aDuplicateMethod(String aParam);
- }
-
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface LocalTimeService {
-
- /**
- * Gets the local time
- *
- * @return The Local Time
- */
- String getTime();
- }
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface WorldTimeService {
-
- /**
- * Gets the time in the specified TimeZone
- *
- * @param timeZone A Time Zone
- *
- * @return The time in the specified TimeZone
- */
- String getTime(String timeZone);
- }
-
- /**
- * Sample interface needed for the unit tests
- */
- @Remotable
- private interface GMTTimeService {
-
- /**
- * Gets the time with the specified GMT offset
- *
- * @param gmtOffset A GMT offset in hours
- *
- * @return The time with the specified GMT offset
- */
- String getTime(int gmtOffset);
- }
-
- /**
- * Sample implementation class that implements the three @Remotable interfaces
- */
- private class TimeServiceImpl implements LocalTimeService, WorldTimeService, GMTTimeService {
- /**
- * Gets the local time
- *
- * @return The Local Time
- */
- public String getTime() {
- return "The current local time";
- }
-
- /**
- * Gets the time in the specified TimeZone
- *
- * @param timeZone A Time Zone
- *
- * @return The time in the specified TimeZone
- */
- public String getTime(String timeZone) {
- return "The current time in TimeZone " + timeZone;
- }
-
- /**
- * Gets the time with the specified GMT offset
- *
- * @param gmtOffset A GMT offset in hours
- *
- * @return The time with the specified GMT offset
- */
- public String getTime(int gmtOffset) {
- return "The current time with GMT offset of " + gmtOffset;
- }
- }
-}
diff --git a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java b/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java
deleted file mode 100644
index 66f98adce3..0000000000
--- a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilTestCase.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.impl;
-
-import static org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil.findOperation;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceUtilTestCase extends TestCase {
- private List<Operation> operations;
-
- public void testNoParamsFindOperation() throws Exception {
- Method method = Foo.class.getMethod("foo");
- Operation ret = findOperation(method, operations);
- assertEquals("foo", ret.getName());
- assertEquals(0, method.getParameterTypes().length);
- }
-
- public void testParamsFindOperation() throws Exception {
- Method method = Foo.class.getMethod("foo", String.class);
- Operation ret = findOperation(method, operations);
- assertEquals("foo", ret.getName());
- assertEquals(String.class, method.getParameterTypes()[0]);
- }
-
- public void testPrimitiveParamFindOperation() throws NoSuchMethodException {
- Method method = Foo.class.getMethod("foo", Integer.TYPE);
- Operation operation = findOperation(method, operations);
- assertEquals(Integer.TYPE, operation.getInputType().getLogical().get(0).getPhysical());
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- Operation operation = newOperation("foo");
- List<DataType> types = new ArrayList<DataType>();
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation.setInputType(inputType);
-
- operations = new ArrayList<Operation>();
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- DataType type = new DataTypeImpl<Class>(String.class, Object.class);
- types.add(type);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(String.class, Object.class);
- DataType type2 = new DataTypeImpl<Class>(String.class, Object.class);
- types.add(type);
- types.add(type2);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(Integer.class, Object.class);
- types.add(type);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- types = new ArrayList<DataType>();
- type = new DataTypeImpl<Class>(Integer.TYPE, Object.class);
- types.add(type);
- inputType = new DataTypeImpl<List<DataType>>(Object[].class, types);
- operation = newOperation("foo");
- operation.setInputType(inputType);
- operations.add(operation);
-
- }
-
- private interface Foo {
- void foo();
-
- void foo(String foo);
-
- void foo(int b);
- }
-
- private static Operation newOperation(String name) {
- Operation operation = new OperationImpl();
- operation.setName(name);
- return operation;
- }
-}
diff --git a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/ConversationalIntrospectionTestCase.java b/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/ConversationalIntrospectionTestCase.java
deleted file mode 100644
index ed0735cccd..0000000000
--- a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/ConversationalIntrospectionTestCase.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.introspection.impl;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InvalidOperationException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.oasisopen.sca.annotation.Conversational;
-import org.oasisopen.sca.annotation.EndsConversation;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ConversationalIntrospectionTestCase extends TestCase {
- private JavaInterfaceFactory javaFactory;
-
- @Override
- protected void setUp() throws Exception {
- javaFactory = new DefaultJavaInterfaceFactory();
- }
-
- private Operation getOperation(Interface i, String name) {
- for (Operation op : i.getOperations()) {
- if (op.getName().equals(name)) {
- return op;
- }
- }
- return null;
- }
-
- public void testServiceContractConversationalInformationIntrospection() throws Exception {
- Interface i = javaFactory.createJavaInterface(Foo.class);
- assertNotNull(i);
- assertTrue(i.isConversational());
- ConversationSequence seq = getOperation(i, "operation").getConversationSequence();
- assertEquals(ConversationSequence.CONVERSATION_CONTINUE, seq);
- seq = getOperation(i, "endOperation").getConversationSequence();
- assertEquals(ConversationSequence.CONVERSATION_END, seq);
- }
-
- public void testBadServiceContract() throws Exception {
- try {
- javaFactory.createJavaInterface(BadFoo.class);
- fail();
- } catch (InvalidOperationException e) {
- // expected
- }
- }
-
- public void testNonConversationalInformationIntrospection() throws Exception {
- Interface i = javaFactory.createJavaInterface(NonConversationalFoo.class);
- assertFalse(i.isConversational());
- ConversationSequence seq = getOperation(i, "operation")
- .getConversationSequence();
- assertEquals(ConversationSequence.CONVERSATION_NONE, seq);
- }
-
- @Conversational
- private interface Foo {
- void operation();
-
- @EndsConversation
- void endOperation();
- }
-
- private interface BadFoo {
- void operation();
-
- @EndsConversation
- void endOperation();
- }
-
- private interface NonConversationalFoo {
- void operation();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java b/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
deleted file mode 100644
index 14ac8b0134..0000000000
--- a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/JavaInterfaceProcessorRegistryImplTestCase.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.introspection.impl;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
-import java.io.IOException;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.easymock.EasyMock;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JavaInterfaceProcessorRegistryImplTestCase extends TestCase {
- private JavaInterfaceFactory factory;
-
- @SuppressWarnings("unchecked")
- public void testSimpleInterface() throws InvalidInterfaceException {
- JavaInterface intf = factory.createJavaInterface(Simple.class);
-
- assertEquals(Simple.class, intf.getJavaClass());
- List<Operation> operations = intf.getOperations();
- assertEquals(1, operations.size());
- Operation baseInt = operations.get(0);
- assertEquals("baseInt", baseInt.getName());
-
- QName element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "return");
-
- DataType<XMLType> returnType = baseInt.getOutputType();
- assertEquals(Integer.TYPE, returnType.getPhysical());
- assertEquals(element, returnType.getLogical().getElementName());
-
- List<DataType> parameterTypes = baseInt.getInputType().getLogical();
- assertEquals(1, parameterTypes.size());
- DataType<XMLType> arg0 = parameterTypes.get(0);
- assertEquals(Integer.TYPE, arg0.getPhysical());
-
- element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "arg0");
- assertEquals(element, arg0.getLogical().getElementName());
-
- List<DataType> faultTypes = baseInt.getFaultTypes();
- assertEquals(1, faultTypes.size());
- DataType<DataType<XMLType>> fault0 = faultTypes.get(0);
- assertEquals(IOException.class, fault0.getPhysical());
- element = new QName("http://impl.introspection.java.interfacedef.sca.tuscany.apache.org/", "IOException");
- assertEquals(element, fault0.getLogical().getLogical().getElementName());
- }
-
- public void testUnregister() throws Exception {
- JavaInterfaceVisitor extension = createMock(JavaInterfaceVisitor.class);
- extension.visitInterface(EasyMock.isA(JavaInterface.class));
- expectLastCall().once();
- replay(extension);
- factory.addInterfaceVisitor(extension);
- factory.createJavaInterface(Base.class);
- factory.removeInterfaceVisitor(extension);
- factory.createJavaInterface(Base.class);
- verify(extension);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- factory = new DefaultJavaInterfaceFactory();
-
- }
-
- private static interface Base {
- int baseInt(int param) throws IllegalArgumentException, IOException;
- }
-
- private static interface Simple extends Base {
-
- }
-}
diff --git a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java b/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java
deleted file mode 100644
index d62c368fa4..0000000000
--- a/java/sca/contrib/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.java.introspection.impl;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor;
-import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
-import org.oasisopen.sca.annotation.PolicySets;
-import org.oasisopen.sca.annotation.Requires;
-
-/**
- * @version $Rev$ $Date$
- */
-public class PolicyProcessorTestCase extends TestCase {
- private JavaInterfaceFactory factory = new DefaultJavaInterfaceFactory();
- private PolicyJavaInterfaceVisitor policyProcessor;
-
- public void testInterfaceLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface1.class);
- policyProcessor.visitInterface(type);
- assertEquals(1, type.getRequiredIntents().size());
- assertEquals(1, type.getPolicySets().size());
- }
-
- public void testMethodLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface2.class);
- policyProcessor.visitInterface(type);
- assertEquals(0, type.getRequiredIntents().size());
- assertEquals(1, type.getOperations().get(0).getRequiredIntents().size());
- assertEquals(1, type.getOperations().get(1).getRequiredIntents().size());
- assertEquals(0, type.getPolicySets().size());
- assertEquals(1, type.getOperations().get(0).getPolicySets().size());
- assertEquals(1, type.getOperations().get(1).getPolicySets().size());
- }
-
- public void testInterfaceAndMethodLevel() throws Exception {
- JavaInterface type = factory.createJavaInterface(Interface3.class);
- policyProcessor.visitInterface(type);
- assertEquals(1, type.getRequiredIntents().size());
- assertEquals(1, type.getOperations().get(0).getRequiredIntents().size());
- assertEquals(1, type.getOperations().get(1).getRequiredIntents().size());
- assertEquals(1, type.getPolicySets().size());
- assertEquals(1, type.getOperations().get(0).getPolicySets().size());
- assertEquals(1, type.getOperations().get(1).getPolicySets().size());
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- policyProcessor = new PolicyJavaInterfaceVisitor(new DefaultPolicyFactory());
- }
-
- // @Remotable
- @Requires( {"transaction.global"})
- @PolicySets( {"{http://ns1}PS1"})
- private interface Interface1 {
- int method1();
-
- int method2();
-
- int method3();
-
- int method4();
- }
-
- private interface Interface2 {
- @Requires( {"transaction.global"})
- @PolicySets( {"{http://ns1}PS1"})
- int method1();
-
- @Requires( {"transaction.local"})
- @PolicySets( {"{http://ns1}PS2"})
- int method2();
- }
-
- @Requires( {"transaction.global.Interface6"})
- @PolicySets( {"{http://ns1}PS1"})
- private interface Interface3 {
- @Requires( {"transaction.global.Interface6.method1"})
- @PolicySets( {"{http://ns1}PS2"})
- int method1();
-
- @Requires( {"transaction.local.Interface6.method2"})
- @PolicySets( {"{http://ns1}PS3"})
- int method2();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/LICENSE b/java/sca/contrib/modules/interface-wsdl-xml/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/NOTICE b/java/sca/contrib/modules/interface-wsdl-xml/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/pom.xml b/java/sca/contrib/modules/interface-wsdl-xml/pom.xml
deleted file mode 100644
index 8a043b41ca..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface-wsdl-xml</artifactId>
- <name>Apache Tuscany SCA WSDL Interface XML Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution-namespace</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution-impl</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-assembly-xml</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface-wsdl</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-xsd-xml</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-sca</artifactId>
- <version>2.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface.wsdl.xml</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef.wsdl.xml*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java
deleted file mode 100644
index 13203d4adc..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELExtensionHandler.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.io.PrintWriter;
-
-import javax.wsdl.Definition;
-import javax.wsdl.WSDLException;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.ExtensionDeserializer;
-import javax.wsdl.extensions.ExtensionRegistry;
-import javax.wsdl.extensions.ExtensionSerializer;
-import javax.xml.namespace.QName;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-/**
- * A WSDL extension processor for extension elements introduced by BPEL - in particular
- * the <partnerLinkType.../> elements
- *
- * @version $Rev$ $Date$
- */
-public class BPELExtensionHandler implements ExtensionSerializer, ExtensionDeserializer {
-
- private final String localName = "partnerLinkType";
- private final String roleName = "role";
-
- /**
- * Marshals the BPEL partner link type extension element to XML
- * See (@link javax.wsdl.extensions.ExtensionSerializer)
- */
- @SuppressWarnings("unchecked")
- public void marshall(Class parentType, QName elementType, ExtensibilityElement theElement,
- PrintWriter writer, Definition def, ExtensionRegistry extReg)
- throws WSDLException {
- // The format of the Partner Link Type in XML is as follows:
- // <foo:partnerLinkType name="bar">
- // <foo:role name="somename" portType="xyz:portTypeName"/>
- // <foo:role name="othername" portType="xyz:portTypeName2"/>
- // <foo:partnerLinkType>
- BPELPartnerLinkTypeExt thePLinkType = (BPELPartnerLinkTypeExt) theElement;
- QName theType = thePLinkType.getElementType();
-
- writer.println("<" + theType.toString() +
- " name=\"" + thePLinkType.getName() + "\">");
- for( int i = 0; i < 2; i++ ) {
- if( thePLinkType.getRoleName( i ) != null ) {
- writer.println( "<" + theType.getPrefix() + ":role"
- + " name=\"" + thePLinkType.getRoleName(i) + "\" portType=\""
- + thePLinkType.getRolePortType(i) + "\">");
- } // end if
- } // end for
- writer.println("</" + theType.toString() + ">");
- } // end marshall
-
- /**
- * Unmarshals the BPEL partner link type element from XML
- * See (@link javax.wsdl.extensions.ExtensionDeserializer)
- * The format of the Partner Link Type in XML is as follows:
- * <foo:partnerLinkType name="bar">
- * <foo:role name="somename" portType="xyz:portTypeName"/>
- * <foo:role name="othername" portType="xyz:portTypeName2"/>
- * <foo:partnerLinkType>
- *
- * One role is mandatory, the second is optional.
- */
- @SuppressWarnings("unchecked")
- public ExtensibilityElement unmarshall(Class theClass, QName elementType,
- Element theElement, Definition def, ExtensionRegistry extReg)
- throws WSDLException {
-
- // Check that this elementType really is a partnerLinkType element
- if( !elementType.getLocalPart().equals(localName) ) return null;
- BPELPartnerLinkTypeExt theExtension = new BPELPartnerLinkTypeExt();
- theExtension.setElementType(elementType);
- theExtension.setName( theElement.getAttribute("name") );
-
- // Fetch the child "role" elements
- NodeList theRoles = theElement.getElementsByTagNameNS("*", roleName);
- for ( int i=0; i < theRoles.getLength(); i++ ) {
- if( i > 1 ) break;
- Element roleNode = (Element)theRoles.item(i);
- String roleName = roleNode.getAttribute("name");
- String portType = roleNode.getAttribute("portType");
- if (portType == null || portType.length() == 0) {
- // Fetch the child "portType" element
- NodeList portTypesNodes = roleNode.getElementsByTagNameNS("*", "portType");
- for (int p = 0; p < portTypesNodes.getLength(); p++) {
- Element portTypeNode = (Element)portTypesNodes.item(p);
- portType = portTypeNode.getAttribute("name");
- break;
- }
- }
- // The PortType attribute is a QName in prefix:localName format - convert to a QName
- QName rolePortType = getQNameValue( def, portType );
- theExtension.setRole( i, roleName, rolePortType );
- } // end for
- return theExtension;
- } // end unmarshall
-
-
- /**
- * Returns a QName from a string.
- * @param definition - a WSDL Definition
- * @param value - the String from which to form the QName in the form "pref:localName"
- * @return
- */
- protected QName getQNameValue(Definition definition, String value) {
- if (value != null && definition != null) {
- int index = value.indexOf(':');
- String prefix = index == -1 ? "" : value.substring(0, index);
- String localName = index == -1 ? value : value.substring(index + 1);
- String ns = definition.getNamespace(prefix);
- if (ns == null) {
- ns = "";
- }
- return new QName(ns, localName, prefix);
- } else {
- return null;
- }
- } // end getQNameValue
-
-} // end BPELExtensionHandler
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELPartnerLinkTypeExt.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELPartnerLinkTypeExt.java
deleted file mode 100644
index 67124832f3..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/BPELPartnerLinkTypeExt.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.xml.namespace.QName;
-
-/**
- * A class to serve as the extensibility element for BPEL partnerLinkType elements
- *
- * @version $Rev$ $Date$
- */
-public class BPELPartnerLinkTypeExt implements ExtensibilityElement {
-
- private QName elementType = null;
- private String linkTypeName = null;
- private String[] roleNames = new String[2];
- private QName[] rolePortTypes = new QName[2];
-
- // -- methods required by the Extensibility Element interface
- public QName getElementType() {
- return elementType;
- }
-
- public Boolean getRequired() {
- return true;
- }
-
- public void setElementType(QName theName ) {
- elementType = theName;
- }
-
- public void setRequired(Boolean required) {
- // intentionally left blank
- }
-
- // -- other methods
-
- public void setName( String theName ) {
- linkTypeName = theName;
- }
-
- public String getName() {
- return linkTypeName;
- }
-
- public void setRole( int i, String name, QName portType ) {
- if( i > 1 ) return;
- roleNames[i] = name;
- rolePortTypes[i] = portType;
- }
-
- public String getRoleName( int i ) {
- if( i > 1 ) return null;
- return roleNames[i];
- }
-
- public QName getRolePortType( int i ) {
- if( i > 1 ) return null;
- return rolePortTypes[i];
- }
-
-} // end BPELPartnerLinkTypeExt
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLConstants.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLConstants.java
deleted file mode 100644
index f9ddda6d98..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLConstants.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-
-/**
- * Constants for WSDL.
- *
- * @version $Rev$ $Date$
- */
-public interface WSDLConstants {
-
- String INTERFACE_WSDL = "interface.wsdl";
- QName INTERFACE_WSDL_QNAME = new QName(Constants.SCA10_NS, "interface.wsdl");
- String INTERFACE = "interface";
- String CALLBACK_INTERFACE = "callbackInterface";
- String WSDL_LOCATION = "wsdlLocation";
- String WSDLI_NS = "http://www.w3.org/2004/08/wsdl-instance";
- QName WSDL_LOCATION_QNAME = new QName(WSDLI_NS, WSDL_LOCATION);
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java
deleted file mode 100644
index 6302913c25..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-import javax.wsdl.Definition;
-import javax.wsdl.Import;
-import javax.xml.namespace.QName;
-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.assembly.builder.impl.ProblemImpl;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
-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.xsd.XSDefinition;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-
-/**
- * An ArtifactProcessor for WSDL documents.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLDocumentProcessor implements URLArtifactProcessor<WSDLDefinition> {
-
- public static final QName WSDL11 = new QName("http://schemas.xmlsoap.org/wsdl/", "definitions");
- public static final QName WSDL11_IMPORT = new QName("http://schemas.xmlsoap.org/wsdl/", "import");
- public static final QName XSD = new QName("http://www.w3.org/2001/XMLSchema", "schema");
-
- private static final XMLInputFactory inputFactory = XMLInputFactory.newInstance();
-
- private WSDLFactory factory;
- private XSDFactory xsdFactory;
- private Monitor monitor;
-
- public WSDLDocumentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.factory = modelFactories.getFactory(WSDLFactory.class);
- this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
- this.monitor = monitor;
- }
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
-
- public WSDLDefinition read(URL contributionURL, URI artifactURI, URL artifactURL) throws ContributionReadException {
- try {
- WSDLDefinition definition = indexRead(artifactURL);
- definition.setURI(artifactURI);
- return definition;
- } catch (Exception e) {
- ContributionReadException ce = new ContributionReadException(e);
- error("ContributionReadException", artifactURL, ce);
- //throw ce;
- return null;
- }
- }
-
- public void resolve(WSDLDefinition model, ModelResolver resolver) throws ContributionResolveException {
- if (model == null) return;
-
- Definition definition = model.getDefinition();
- if (definition != null) {
- for (Object imports : definition.getImports().values()) {
- List importList = (List)imports;
- for (Object i : importList) {
- Import imp = (Import)i;
- if (imp.getDefinition() != null) {
- continue;
- }
- if (imp.getLocationURI() == null) {
- // FIXME: [rfeng] By the WSDL 1.1 Specification, the location attribute is required
- // We need to resolve it by QName
- WSDLDefinition proxy = factory.createWSDLDefinition();
- proxy.setUnresolved(true);
- proxy.setNamespace(imp.getNamespaceURI());
- WSDLDefinition resolved = resolver.resolveModel(WSDLDefinition.class, proxy);
- if (resolved != null && !resolved.isUnresolved()) {
- imp.setDefinition(resolved.getDefinition());
- if (!model.getImportedDefinitions().contains(resolved)) {
- model.getImportedDefinitions().add(resolved);
- }
- }
- } else {
- String location = imp.getLocationURI();
- URI uri = URI.create(location);
- if (uri.isAbsolute()) {
- WSDLDefinition resolved;
- try {
- resolved = read(null, uri, uri.toURL());
- imp.setDefinition(resolved.getDefinition());
- if (!model.getImportedDefinitions().contains(resolved)) {
- model.getImportedDefinitions().add(resolved);
- }
- } catch (Exception e) {
- ContributionResolveException ce = new ContributionResolveException(e);
- error("ContributionResolveException", resolver, ce);
- //throw ce;
- }
- } else {
- if (location.startsWith("/")) {
- // This is a relative URI against a contribution
- location = location.substring(1);
- // TODO: Need to resolve it against the contribution
- } else {
- // This is a relative URI against the WSDL document
- URI baseURI = URI.create(model.getDefinition().getDocumentBaseURI());
- URI locationURI = baseURI.resolve(location);
- WSDLDefinition resolved;
- try {
- resolved = read(null, locationURI, locationURI.toURL());
- imp.setDefinition(resolved.getDefinition());
- if (!model.getImportedDefinitions().contains(resolved)) {
- model.getImportedDefinitions().add(resolved);
- }
- } catch (Exception e) {
- ContributionResolveException ce = new ContributionResolveException(e);
- error("ContributionResolveException", resolver, ce);
- //throw ce;
- }
- }
- }
- }
- }
- }
- }
- }
-
- public String getArtifactType() {
- return ".wsdl";
- }
-
- public Class<WSDLDefinition> getModelType() {
- return WSDLDefinition.class;
- }
-
- /**
- * Read the namespace for the WSDL definition and inline schemas
- *
- * @param doc
- * @return
- * @throws IOException
- * @throws XMLStreamException
- */
- protected WSDLDefinition indexRead(URL doc) throws Exception {
- WSDLDefinition wsdlDefinition = factory.createWSDLDefinition();
- wsdlDefinition.setUnresolved(true);
- wsdlDefinition.setLocation(doc.toURI());
-
- InputStream is = doc.openStream();
- try {
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- int eventType = reader.getEventType();
- int index = 0;
- while (true) {
- if (eventType == XMLStreamConstants.START_ELEMENT) {
- if (WSDL11.equals(reader.getName())) {
- String tns = reader.getAttributeValue(null, "targetNamespace");
- wsdlDefinition.setNamespace(tns);
- // The definition is marked as resolved but not loaded
- wsdlDefinition.setUnresolved(false);
- wsdlDefinition.setDefinition(null);
- }
- if (XSD.equals(reader.getName())) {
- String tns = reader.getAttributeValue(null, "targetNamespace");
- XSDefinition xsd = xsdFactory.createXSDefinition();
- xsd.setUnresolved(true);
- xsd.setNamespace(tns);
- xsd.setLocation(URI.create(doc.toURI() + "#" + index));
- index++;
- // The definition is marked as resolved but not loaded
- xsd.setUnresolved(false);
- xsd.setSchema(null);
- wsdlDefinition.getXmlSchemas().add(xsd);
- }
- }
- if (reader.hasNext()) {
- eventType = reader.next();
- } else {
- break;
- }
- }
- return wsdlDefinition;
- } finally {
- is.close();
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
deleted file mode 100644
index e04a4d6743..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-
-import javax.wsdl.PortType;
-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.builder.impl.ProblemImpl;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLObject;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class WSDLInterfaceProcessor implements StAXArtifactProcessor<WSDLInterfaceContract>, WSDLConstants {
-
- private WSDLFactory wsdlFactory;
- private Monitor monitor;
-
- public WSDLInterfaceProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
- this.monitor = monitor;
- }
-
- /**
- * Report a warning.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void warning(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "interface-wsdlxml-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
-
- /**
- * Create a WSDL interface from a URI.
- * @param uri
- * @return
- * @throws ContributionReadException
- */
- private WSDLInterface createWSDLInterface(String uri) throws ContributionReadException {
-
- WSDLInterface wsdlInterface = null;
-
- // Read a QName in the form:
- // namespace#wsdl.interface(name)
- int index = uri.indexOf('#');
- if (index == -1) {
- error("InvalidWSDLInterfaceAttr", wsdlFactory, uri);
- //throw new ContributionReadException("Invalid WSDL interface attribute: " + uri);
- } else {
- wsdlInterface = wsdlFactory.createWSDLInterface();
- wsdlInterface.setUnresolved(true);
- String namespace = uri.substring(0, index);
- String name = uri.substring(index + 1);
- name = name.substring("wsdl.interface(".length(), name.length() - 1);
- wsdlInterface.setName(new QName(namespace, name));
- }
-
- return wsdlInterface;
- }
-
- public WSDLInterfaceContract read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- // Read an <interface.wsdl>
- WSDLInterfaceContract wsdlInterfaceContract = wsdlFactory.createWSDLInterfaceContract();
-
- // Read wsdlLocation
- String location = reader.getAttributeValue(WSDLI_NS, WSDL_LOCATION);
- wsdlInterfaceContract.setLocation(location);
-
- String uri = reader.getAttributeValue(null, INTERFACE);
- if (uri != null) {
- WSDLInterface wsdlInterface = createWSDLInterface(uri);
- if (wsdlInterface != null)
- wsdlInterfaceContract.setInterface(wsdlInterface);
- }
-
- uri = reader.getAttributeValue(null, CALLBACK_INTERFACE);
- if (uri != null) {
- WSDLInterface wsdlCallbackInterface = createWSDLInterface(uri);
- if (wsdlCallbackInterface != null)
- wsdlInterfaceContract.setCallbackInterface(wsdlCallbackInterface);
- }
-
- // Skip to end element
- while (reader.hasNext()) {
- if (reader.next() == END_ELEMENT && INTERFACE_WSDL_QNAME.equals(reader.getName())) {
- break;
- }
- }
- return wsdlInterfaceContract;
- }
-
- public void write(WSDLInterfaceContract wsdlInterfaceContract, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
- // Write an <interface.wsdl>
- writer.writeStartElement(Constants.SCA10_NS, INTERFACE_WSDL);
-
- // Write interface name
- WSDLInterface wsdlInterface = (WSDLInterface)wsdlInterfaceContract.getInterface();
- if (wsdlInterface != null) {
- QName qname = wsdlInterface.getName();
- String uri = qname.getNamespaceURI() + "#wsdl.interface(" + qname.getLocalPart() + ")";
- writer.writeAttribute(INTERFACE, uri);
- }
-
- WSDLInterface wsdlCallbackInterface = (WSDLInterface)wsdlInterfaceContract.getCallbackInterface();
- if (wsdlCallbackInterface != null) {
- QName qname = wsdlCallbackInterface.getName();
- String uri = qname.getNamespaceURI() + "#wsdl.interface(" + qname.getLocalPart() + ")";
- writer.writeAttribute(CALLBACK_INTERFACE, uri);
- }
-
- // Write location
- if (wsdlInterfaceContract.getLocation() != null) {
- writer.writeAttribute(WSDLI_NS, WSDL_LOCATION, wsdlInterfaceContract.getLocation());
- }
-
- writer.writeEndElement();
- }
-
- private WSDLInterface resolveWSDLInterface(WSDLInterface wsdlInterface, ModelResolver resolver) throws ContributionResolveException {
-
- if (wsdlInterface != null && wsdlInterface.isUnresolved()) {
-
- // Resolve the WSDL interface
- wsdlInterface = resolver.resolveModel(WSDLInterface.class, wsdlInterface);
- if (wsdlInterface.isUnresolved()) {
-
- // If the WSDL interface has never been resolved yet, do it now
- // First, resolve the WSDL definition for the given namespace
- WSDLDefinition wsdlDefinition = wsdlFactory.createWSDLDefinition();
- wsdlDefinition.setUnresolved(true);
- wsdlDefinition.setNamespace(wsdlInterface.getName().getNamespaceURI());
- WSDLDefinition resolved = resolver.resolveModel(WSDLDefinition.class, wsdlDefinition);
- if (!resolved.isUnresolved()) {
- wsdlDefinition.setDefinition(resolved.getDefinition());
- wsdlDefinition.setLocation(resolved.getLocation());
- wsdlDefinition.setURI(resolved.getURI());
- wsdlDefinition.getImportedDefinitions().addAll(resolved.getImportedDefinitions());
- wsdlDefinition.getXmlSchemas().addAll(resolved.getXmlSchemas());
- wsdlDefinition.setUnresolved(false);
- WSDLObject<PortType> portType = wsdlDefinition.getWSDLObject(PortType.class, wsdlInterface.getName());
- if (portType != null) {
- // Introspect the WSDL portType and add the resulting
- // WSDLInterface to the resolver
- try {
- wsdlDefinition.setDefinition(portType.getDefinition());
- wsdlInterface = wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, resolver);
- wsdlInterface.setWsdlDefinition(wsdlDefinition);
- resolver.addModel(wsdlInterface);
- } catch (InvalidInterfaceException e) {
- ContributionResolveException ce = new ContributionResolveException(e);
- error("ContributionResolveException", wsdlFactory, ce);
- //throw ce;
- }
- }
- else {
- warning("WsdlInterfaceDoesNotMatch", wsdlDefinition, wsdlInterface.getName());
- }
- }
- }
- }
- return wsdlInterface;
- }
-
- public void resolve(WSDLInterfaceContract wsdlInterfaceContract, ModelResolver resolver) throws ContributionResolveException {
-
- // Resolve the interface and callback interface
- WSDLInterface wsdlInterface = resolveWSDLInterface((WSDLInterface)wsdlInterfaceContract.getInterface(), resolver);
- wsdlInterfaceContract.setInterface(wsdlInterface);
-
- WSDLInterface wsdlCallbackInterface = resolveWSDLInterface((WSDLInterface)wsdlInterfaceContract.getCallbackInterface(), resolver);
- wsdlInterfaceContract.setCallbackInterface(wsdlCallbackInterface);
- }
-
- public QName getArtifactType() {
- return WSDLConstants.INTERFACE_WSDL_QNAME;
- }
-
- public Class<WSDLInterfaceContract> getModelType() {
- return WSDLInterfaceContract.class;
- }
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java b/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
deleted file mode 100644
index 9c23458743..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
+++ /dev/null
@@ -1,487 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.Definition;
-import javax.wsdl.Operation;
-import javax.wsdl.PortType;
-import javax.wsdl.Types;
-import javax.wsdl.WSDLException;
-import javax.wsdl.extensions.AttributeExtensible;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.ExtensionDeserializer;
-import javax.wsdl.extensions.ExtensionRegistry;
-import javax.wsdl.extensions.ExtensionSerializer;
-import javax.wsdl.extensions.UnknownExtensibilityElement;
-import javax.wsdl.extensions.UnknownExtensionDeserializer;
-import javax.wsdl.extensions.UnknownExtensionSerializer;
-import javax.wsdl.extensions.schema.Schema;
-import javax.wsdl.xml.WSDLLocator;
-import javax.wsdl.xml.WSDLReader;
-import javax.xml.namespace.QName;
-
-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.DefaultImport;
-import org.apache.tuscany.sca.contribution.Import;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.namespace.NamespaceImport;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionRuntimeException;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.tuscany.sca.xsd.xml.XMLDocumentHelper;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.xml.sax.InputSource;
-
-/**
- * A Model Resolver for WSDL models.
- *
- * @version $Rev: 557916 $ $Date: 2007-07-20 01:04:40 -0700 (Fri, 20 Jul 2007) $
- */
-public class WSDLModelResolver implements ModelResolver {
- //Schema element names
- public static final String ELEM_SCHEMA = "schema";
-
- //Schema URI
- public static final String NS_URI_XSD_1999 = "http://www.w3.org/1999/XMLSchema";
- public static final String NS_URI_XSD_2000 = "http://www.w3.org/2000/10/XMLSchema";
- public static final String NS_URI_XSD_2001 = "http://www.w3.org/2001/XMLSchema";
-
- //Schema QNames
- public static final QName Q_ELEM_XSD_1999 = new QName(NS_URI_XSD_1999, ELEM_SCHEMA);
- public static final QName Q_ELEM_XSD_2000 = new QName(NS_URI_XSD_2000, ELEM_SCHEMA);
- public static final QName Q_ELEM_XSD_2001 = new QName(NS_URI_XSD_2001, ELEM_SCHEMA);
- public static final List<QName> XSD_QNAME_LIST =
- Arrays.asList(new QName[] {Q_ELEM_XSD_1999, Q_ELEM_XSD_2000, Q_ELEM_XSD_2001});
-
- // ---- Policy WSDL Attachments
-
- public static final QName Q_POLICY_ATTRIBUTE_EXTENSION = new QName("http://www.osoa.org/xmlns/sca/1.0", "requires");
- public static final QName Q_POLICY_END_CONVERSATION_ATTRIBUTE_EXTENSION = new QName("http://www.osoa.org/xmlns/sca/1.0", "endsConversation");
-
- // ---- Stuff added for BPEL extension elements --- Mike Edwards 01/05/2008
- public static final String ELEM_PLINKTYPE = "partnerLinkType";
- public static final String NS_BPEL_1_1 = "http://schemas.xmlsoap.org/ws/2004/03/partner-link/";
- public static final QName BPEL_PLINKTYPE = new QName( NS_BPEL_1_1, ELEM_PLINKTYPE );
- // ---- end of BPEL extension stuff
-
- private Contribution contribution;
- private Map<String, List<WSDLDefinition>> map = new HashMap<String, List<WSDLDefinition>>();
-
- private ExtensionRegistry wsdlExtensionRegistry;
-
- private WSDLFactory wsdlFactory;
- private javax.wsdl.factory.WSDLFactory wsdl4jFactory;
- private ContributionFactory contributionFactory;
- private XSDFactory xsdFactory;
-
- public WSDLModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) {
- this.contribution = contribution;
-
- this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
- this.wsdl4jFactory = modelFactories.getFactory(javax.wsdl.factory.WSDLFactory.class);
- this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
- this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
-
- wsdlExtensionRegistry = this.wsdl4jFactory.newPopulatedExtensionRegistry();
- // REVIEW: [rfeng] Disable the schema extension for WSDL4J to avoid aggressive loading
- ExtensionDeserializer deserializer = new UnknownExtensionDeserializer();
- ExtensionSerializer serializer = new UnknownExtensionSerializer();
- for (QName schema : XSD_QNAME_LIST) {
- wsdlExtensionRegistry.registerSerializer(Types.class, schema, serializer);
- wsdlExtensionRegistry.registerDeserializer(Types.class, schema, deserializer);
- }
- // ---- Policy WSDL Extensions
- try {
- wsdlExtensionRegistry.registerExtensionAttributeType(PortType.class, Q_POLICY_ATTRIBUTE_EXTENSION, AttributeExtensible.LIST_OF_QNAMES_TYPE);
- wsdlExtensionRegistry.registerExtensionAttributeType(Operation.class, Q_POLICY_END_CONVERSATION_ATTRIBUTE_EXTENSION, AttributeExtensible.STRING_TYPE);
- } catch (NoSuchMethodError e) {
- // That method does not exist on older WSDL4J levels
- }
-
- // ---- BPEL additions
- serializer = new BPELExtensionHandler();
- deserializer = new BPELExtensionHandler();
- wsdlExtensionRegistry.registerSerializer(Definition.class, BPEL_PLINKTYPE, serializer);
- wsdlExtensionRegistry.registerDeserializer(Definition.class, BPEL_PLINKTYPE, deserializer);
- // ---- end of BPEL additions
- }
-
- /**
- * Implementation of a WSDL locator.
- */
- private class WSDLLocatorImpl implements WSDLLocator {
- private InputStream inputStream;
- private URL base;
- private String latestImportURI;
-
- public WSDLLocatorImpl(URL base, InputStream is) {
- this.base = base;
- this.inputStream = is;
- }
-
- public void close() {
- try {
- inputStream.close();
- } catch (IOException e) {
- // Ignore
- }
- }
-
- public InputSource getBaseInputSource() {
- try {
- return XMLDocumentHelper.getInputSource(base, inputStream);
- } catch (IOException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- public String getBaseURI() {
- return base.toString();
- }
-
- public InputSource getImportInputSource(String parentLocation, String importLocation) {
- try {
- if (importLocation == null) {
- throw new IllegalArgumentException("Required attribute 'location' is missing.");
- }
-
- URL url = null;
- if (importLocation.startsWith("/")) {
- // The URI is relative to the contribution
- String uri = importLocation.substring(1);
-
- Artifact proxyArtifact = contributionFactory.createArtifact();
- proxyArtifact.setURI(uri);
-
- //use contribution resolution (this supports import/export)
- Artifact importedArtifact =
- contribution.getModelResolver().resolveModel(Artifact.class, proxyArtifact);
- if (importedArtifact.getLocation() != null) {
- //get the artifact URL
- url = new URL(importedArtifact.getLocation());
- }
- } else {
- url = new URL(new URL(parentLocation), importLocation);
- }
- if (url == null) {
- return null;
- }
- latestImportURI = url.toString();
- return XMLDocumentHelper.getInputSource(url);
- } catch (Exception e) {
- throw new ContributionRuntimeException(e);
- }
- }
-
- public String getLatestImportURI() {
- return latestImportURI;
- }
-
- }
-
- public void addModel(Object resolved) {
- WSDLDefinition definition = (WSDLDefinition)resolved;
- for (XSDefinition d : definition.getXmlSchemas()) {
- if (contribution != null) {
- contribution.getModelResolver().addModel(d);
- }
- }
- List<WSDLDefinition> list = map.get(definition.getNamespace());
- if (list == null) {
- list = new ArrayList<WSDLDefinition>();
- map.put(definition.getNamespace(), list);
- }
- list.add(definition);
- }
-
- public Object removeModel(Object resolved) {
- WSDLDefinition definition = (WSDLDefinition)resolved;
- List<WSDLDefinition> list = map.get(definition.getNamespace());
- if (list == null) {
- return null;
- } else {
- return list.remove(definition);
- }
- }
-
- /**
- * Create a facade Definition which imports all the definitions
- *
- * @param definitions A list of the WSDL definitions under the same target namespace
- * @return The aggregated WSDL definition
- */
- private WSDLDefinition aggregate(List<WSDLDefinition> definitions) {
- if (definitions == null || definitions.size() == 0) {
- return null;
- }
- if (definitions.size() == 1) {
- WSDLDefinition d = definitions.get(0);
- loadOnDemand(d);
- return d;
- }
- WSDLDefinition aggregated = wsdlFactory.createWSDLDefinition();
- for (WSDLDefinition d : definitions) {
- loadOnDemand(d);
- }
- Definition facade = wsdl4jFactory.newDefinition();
- String ns = definitions.get(0).getNamespace();
- facade.setQName(new QName(ns, "$aggregated$"));
- facade.setTargetNamespace(ns);
-
- for (WSDLDefinition d : definitions) {
- if (d.getDefinition() != null) {
- javax.wsdl.Import imp = facade.createImport();
- imp.setNamespaceURI(d.getNamespace());
- imp.setDefinition(d.getDefinition());
- imp.setLocationURI(d.getDefinition().getDocumentBaseURI());
- facade.addImport(imp);
- aggregated.getXmlSchemas().addAll(d.getXmlSchemas());
- aggregated.getImportedDefinitions().add(d);
- }
- }
- aggregated.setDefinition(facade);
- definitions.clear();
- definitions.add(aggregated);
- return aggregated;
- }
-
- public <T> T resolveModel(Class<T> modelClass, T unresolved) {
-
- // Lookup a definition for the given namespace
- String namespace = ((WSDLDefinition)unresolved).getNamespace();
- if (namespace == null) {
- return modelClass.cast(unresolved);
- }
- List<WSDLDefinition> list = map.get(namespace);
- WSDLDefinition resolved = aggregate(list);
- if (resolved != null && !resolved.isUnresolved()) {
- return modelClass.cast(resolved);
- }
-
- // No definition found, delegate the resolution to the imports
- for (Import import_ : this.contribution.getImports()) {
- if (import_ instanceof NamespaceImport) {
- NamespaceImport namespaceImport = (NamespaceImport)import_;
- if (namespaceImport.getNamespace().equals(namespace)) {
-
- // Delegate the resolution to the namespace import resolver
- resolved =
- namespaceImport.getModelResolver().resolveModel(WSDLDefinition.class,
- (WSDLDefinition)unresolved);
- if (!resolved.isUnresolved()) {
- return modelClass.cast(resolved);
- }
- }
- } else if (import_ instanceof DefaultImport) {
-
- // Delegate the resolution to the default import resolver
- resolved =
- import_.getModelResolver().resolveModel(WSDLDefinition.class,
- (WSDLDefinition)unresolved);
- if (!resolved.isUnresolved()) {
- return modelClass.cast(resolved);
- }
- }
- }
- return modelClass.cast(unresolved);
- }
-
- /**
- * Load the WSDL definition on demand
- * @param def
- */
- private void loadOnDemand(WSDLDefinition def) {
- if (def.getDefinition() == null && def.getLocation() != null) {
- // Load the definition on-demand
- try {
- loadDefinition(def);
- } catch (ContributionReadException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- // private Map<String, WSDLDefinition> loadedDefinitions = new Hashtable<String, WSDLDefinition>();
-
- /**
- * Load the WSDL definition and inline schemas
- *
- * @param wsdlDef
- * @throws ContributionReadException
- */
- private void loadDefinition(WSDLDefinition wsdlDef) throws ContributionReadException {
- if (wsdlDef.getDefinition() != null || wsdlDef.getLocation() == null) {
- return;
- }
- try {
- URL artifactURL = wsdlDef.getLocation().toURL();
- // Read a WSDL document
- InputStream is = artifactURL.openStream();
- WSDLReader reader = wsdl4jFactory.newWSDLReader();
- reader.setFeature("javax.wsdl.verbose", false);
- reader.setFeature("javax.wsdl.importDocuments", true);
- // FIXME: We need to decide if we should disable the import processing by WSDL4J
- // reader.setFeature("javax.wsdl.importDocuments", false);
- reader.setExtensionRegistry(wsdlExtensionRegistry); // use a custom registry
-
- WSDLLocatorImpl locator = new WSDLLocatorImpl(artifactURL, is);
- Definition definition = reader.readWSDL(locator);
- wsdlDef.setDefinition(definition);
-
- // If this definition imports any definitions from other namespaces,
- // set the correct WSDLDefinition import relationships.
- for (Map.Entry<String, List<javax.wsdl.Import>> entry :
- ((Map<String, List<javax.wsdl.Import>>)definition.getImports()).entrySet()) {
- if (!entry.getKey().equals(definition.getTargetNamespace())) {
- WSDLDefinition wsdlDefinition = wsdlFactory.createWSDLDefinition();
- wsdlDefinition.setUnresolved(true);
- wsdlDefinition.setNamespace(entry.getKey());
- WSDLDefinition resolved = resolveModel(WSDLDefinition.class, wsdlDefinition);
- if (!resolved.isUnresolved()) {
- for (javax.wsdl.Import imp : entry.getValue()) {
- if (resolved.getDefinition().getDocumentBaseURI().equals(imp.getDefinition().getDocumentBaseURI())) {
- // this WSDLDefinition contains the imported document
- wsdlDef.getImportedDefinitions().add(resolved);
- } else {
- // this is a facade, so look in its imported definitions
- for (WSDLDefinition def : resolved.getImportedDefinitions()) {
- if (def.getDefinition().getDocumentBaseURI().equals(imp.getDefinition().getDocumentBaseURI())) {
- wsdlDef.getImportedDefinitions().add(def);
- break;
- }
- }
- }
- }
- }
- }
- }
-
- //Read inline schemas
- readInlineSchemas(wsdlDef, definition);
- } catch (WSDLException e) {
- throw new ContributionReadException(e);
- } catch (IOException e) {
- throw new ContributionReadException(e);
- }
- }
-
- private Document promote(Element element) {
- Document doc = (Document)element.getOwnerDocument().cloneNode(false);
- Element schema = (Element)doc.importNode(element, true);
- doc.appendChild(schema);
- Node parent = element.getParentNode();
- while (parent instanceof Element) {
- Element root = (Element)parent;
- NamedNodeMap nodeMap = root.getAttributes();
- if (nodeMap != null) {
- for (int i = 0; i < nodeMap.getLength(); i++) {
- Attr attr = (Attr)nodeMap.item(i);
- String name = attr.getName();
- if ("xmlns".equals(name) || name.startsWith("xmlns:")) {
- if (schema.getAttributeNode(name) == null) {
- schema.setAttributeNodeNS((Attr)doc.importNode(attr, true));
- }
- }
- }
- }
- parent = parent.getParentNode();
- }
- doc.setDocumentURI(element.getOwnerDocument().getDocumentURI());
- return doc;
- }
-
- /**
- * Populate the inline schemas including those from the imported definitions
- *
- * @param definition
- * @param schemaCollection
- */
- private void readInlineSchemas(WSDLDefinition wsdlDefinition, Definition definition) {
- if (contribution == null) {
- // Check null for test cases
- return;
- }
- Types types = definition.getTypes();
- if (types != null) {
- int index = 0;
- for (Object ext : types.getExtensibilityElements()) {
- ExtensibilityElement extElement = (ExtensibilityElement)ext;
- Element element = null;
- if (XSD_QNAME_LIST.contains(extElement.getElementType())) {
- if (extElement instanceof Schema) {
- element = ((Schema)extElement).getElement();
- } else if (extElement instanceof UnknownExtensibilityElement) {
- element = ((UnknownExtensibilityElement)extElement).getElement();
- }
- }
- if (element != null) {
- Document doc = promote(element);
- XSDefinition xsDefinition = xsdFactory.createXSDefinition();
- xsDefinition.setUnresolved(true);
- xsDefinition.setNamespace(element.getAttribute("targetNamespace"));
- xsDefinition.setDocument(doc);
- xsDefinition.setLocation(URI.create(doc.getDocumentURI() + "#" + index));
- XSDefinition resolved =
- contribution.getModelResolver().resolveModel(XSDefinition.class, xsDefinition);
- if (resolved != null && !resolved.isUnresolved()) {
- if (!wsdlDefinition.getXmlSchemas().contains(resolved)) {
- // Don't add resolved because it may be an aggregate that
- // contains more than we need. The resolver will have
- // set the specific schema we need into unresolved.
- wsdlDefinition.getXmlSchemas().add(xsDefinition);
- }
- }
- index++;
- }
- }
- }
- for (Object imports : definition.getImports().values()) {
- List impList = (List)imports;
- for (Object i : impList) {
- javax.wsdl.Import anImport = (javax.wsdl.Import)i;
- // Read inline schemas
- if (anImport.getDefinition() != null) {
- readInlineSchemas(wsdlDefinition, anImport.getDefinition());
- }
- }
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
deleted file mode 100644
index 9666a6dbd8..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLInterfaceProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#interface.wsdl,model=org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor b/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor
deleted file mode 100644
index 553c764233..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLDocumentProcessor;type=.wsdl,model=org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver b/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver
deleted file mode 100644
index 30d2039e80..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLModelResolver;model=org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties b/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties
deleted file mode 100644
index 2f8c3e0500..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-ContributionReadException = ContributionReadException occured due to :
-ContributionResolveException = ContributionResolveException occured due to :
-InvalidWSDLInterfaceAttr = Invalid WSDL interface attribute: {0}
-WsdlInterfaceDoesNotMatch = The #wsdl.interface({0}) specified does not match with WSDL Definitions \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java
deleted file mode 100644
index f0228edb1f..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-
-/**
- * Test case for WSDLOperation.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractWSDLTestCase extends TestCase {
- protected URLArtifactProcessor<Object> documentProcessor;
- protected ModelResolver resolver;
- protected WSDLFactory wsdlFactory;
- protected XSDFactory xsdFactory;
-
- /**
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
- wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
- xsdFactory = modelFactories.getFactory(XSDFactory.class);
-
- ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
- Contribution contribution = contributionFactory.createContribution();
- ModelResolverExtensionPoint modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class);
- resolver = new ExtensibleModelResolver(contribution, modelResolvers, modelFactories);
- contribution.setModelResolver(resolver);
-
- URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
- documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors, null);
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLInterfaceIntrospectorTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLInterfaceIntrospectorTestCase.java
deleted file mode 100644
index dc7e1ced38..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLInterfaceIntrospectorTestCase.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.introspect;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.interfacedef.wsdl.AbstractWSDLTestCase;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-
-/**
- * Test case for InterfaceWSDLIntrospectorImpl.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLInterfaceIntrospectorTestCase extends AbstractWSDLTestCase {
- private static final QName PORTTYPE_NAME = new QName("http://example.com/stockquote.wsdl", "StockQuotePortType");
-
- private PortType portType;
- private WSDLDefinition definition;
-
- /**
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- URL url = getClass().getResource("../xml/stockquote.wsdl");
- definition = (WSDLDefinition)documentProcessor.read(null, new URI("stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
- }
-
- @SuppressWarnings("unchecked")
- public final void testIntrospectPortType() throws InvalidInterfaceException {
- WSDLInterface contract = wsdlFactory.createWSDLInterface(portType, definition, resolver);
- Assert.assertEquals(contract.getName().getLocalPart(), "StockQuotePortType");
- List<Operation> operations = contract.getOperations();
- Assert.assertEquals(1, operations.size());
- Operation operation = operations.get(0);
- Assert.assertEquals("getLastTradePrice", operation.getName());
- DataType<List<DataType>> inputType = operation.getInputType();
- Assert.assertEquals(1, inputType.getLogical().size());
- DataType<XMLType> returnType = operation.getOutputType();
- Assert.assertNotNull(returnType);
- Assert.assertEquals(0, operation.getFaultTypes().size());
- // Assert.assertEquals(1,
- // operation.getWrapper().getInputChildElements().size());
- // Assert.assertEquals(1,
- // operation.getWrapper().getOutputChildElements().size());
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java
deleted file mode 100644
index c392b92f8a..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.introspect;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-import javax.wsdl.Operation;
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.interfacedef.wsdl.AbstractWSDLTestCase;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl;
-
-/**
- * Test case for WSDLOperation.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLOperationIntrospectorTestCase extends AbstractWSDLTestCase {
- private static final QName PORTTYPE_NAME =
- new QName("http://example.com/stockquote.wsdl", "StockQuotePortType");
-
-
- @SuppressWarnings("unchecked")
- public final void testWrappedOperation() throws Exception {
- URL url = getClass().getResource("../xml/stockquote.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, new URI("stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- PortType portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
- Operation operation = portType.getOperation("getLastTradePrice", null, null);
-
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
-
- DataType<List<DataType>> inputType = op.getInputType();
- Assert.assertEquals(1, inputType.getLogical().size());
- DataType<XMLType> type = inputType.getLogical().get(0);
- Assert.assertEquals(new QName("http://example.com/stockquote.xsd", "getLastTradePrice"), type.getLogical().getElementName());
-
- DataType<XMLType> outputType = op.getOutputType();
- Assert.assertEquals(new QName("http://example.com/stockquote.xsd", "getLastTradePriceResponse"),
- outputType.getLogical().getElementName());
- Assert.assertTrue(op.isWrapperStyle());
-
- DataType<List<DataType>> unwrappedInputType = op.getWrapper().getWrapperInfo().getUnwrappedInputType();
- List<DataType> childTypes = unwrappedInputType.getLogical();
- Assert.assertEquals(1, childTypes.size());
- DataType<XMLType> childType = childTypes.get(0);
- Assert.assertEquals(new QName(null, "tickerSymbol"), childType.getLogical().getElementName());
-
- childType = op.getWrapper().getWrapperInfo().getUnwrappedOutputType();
- Assert.assertEquals(new QName(null, "price"), childType.getLogical().getElementName());
- }
-
- public final void testUnwrappedOperation() throws Exception {
- URL url = getClass().getResource("../xml/unwrapped-stockquote.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, new URI("unwrapped-stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- PortType portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
-
- Operation operation = portType.getOperation("getLastTradePrice1", null, null);
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
- Assert.assertFalse(op.isWrapperStyle());
- Assert.assertEquals(1, op.getInputType().getLogical().size());
-
- operation = portType.getOperation("getLastTradePrice2", null, null);
- op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
- Assert.assertFalse(op.isWrapperStyle());
- Assert.assertEquals(2, op.getInputType().getLogical().size());
- }
-
- public final void testInvalidWSDL() throws Exception {
- URL url = getClass().getResource("../xml/invalid-stockquote.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, new URI("invalid-stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- PortType portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
-
- Operation operation = portType.getOperation("getLastTradePrice", null, null);
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
-
- try {
- op.isWrapperStyle();
- fail("InvalidWSDLException should have been thrown");
- } catch (InvalidInterfaceException e) {
- // Expected
- }
-
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLPolicyAnnotatedInterfaceIntrospectorTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLPolicyAnnotatedInterfaceIntrospectorTestCase.java
deleted file mode 100644
index cf379a1b11..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLPolicyAnnotatedInterfaceIntrospectorTestCase.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.introspect;
-
-import java.net.URI;
-import java.net.URL;
-
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.wsdl.AbstractWSDLTestCase;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.policy.Intent;
-
-/**
- * Test case for InterfaceWSDLIntrospectorImpl.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLPolicyAnnotatedInterfaceIntrospectorTestCase extends AbstractWSDLTestCase {
- private static final QName PORTTYPE_NAME = new QName("http://example.com/stockquote.wsdl", "StockQuotePortType");
- private static final QName INTENT = new QName("http://example.com/stockquote.wsdl", "PolicyIntent");
-
- private PortType portType;
- private WSDLDefinition definition;
-
- /**
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- URL url = getClass().getResource("/policy/stockquote_policy.wsdl");
- definition = (WSDLDefinition)documentProcessor.read(null, new URI("stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
- }
-
- @SuppressWarnings("unchecked")
- public final void testIntrospectPortType() throws InvalidInterfaceException {
- WSDLInterface contract = wsdlFactory.createWSDLInterface(portType, definition, resolver);
- Assert.assertEquals(contract.getName().getLocalPart(), "StockQuotePortType");
- Assert.assertTrue(contract.isConversational());
-
- boolean foundIntent = false;
-
- for(Intent intent : contract.getRequiredIntents()) {
- if(INTENT.equals(intent.getName())) {
- foundIntent = true;
- }
- }
-
- Assert.assertTrue(foundIntent);
-
- for(Operation operation : contract.getOperations()) {
- if(operation.getName().equals("cancel")) {
- Assert.assertEquals(operation.getConversationSequence(), ConversationSequence.CONVERSATION_END);
- }
- }
-
- }
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WrapperStyleOperationTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WrapperStyleOperationTestCase.java
deleted file mode 100644
index ff18c65c69..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WrapperStyleOperationTestCase.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.introspect;
-
-import java.net.URI;
-import java.net.URL;
-
-import javax.wsdl.Operation;
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.wsdl.AbstractWSDLTestCase;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl;
-
-/**
- * Test case for WSDLOperation.
- *
- * @version $Rev$ $Date$
- */
-public class WrapperStyleOperationTestCase extends AbstractWSDLTestCase {
- private static final QName PORTTYPE_NAME = new QName("http://example.com/stockquote.wsdl", "StockQuotePortType");
-
- public final void testWrappedOperation() throws Exception {
- URL url = getClass().getResource("../xml/stockquote.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, new URI("stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- PortType portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
- Operation operation = portType.getOperation("getLastTradePrice", null, null);
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
- Assert.assertTrue(op.isWrapperStyle());
- Assert.assertEquals(1, op.getWrapper().getInputChildElements().size());
- Assert.assertEquals(1, op.getWrapper().getOutputChildElements().size());
- }
-
- public final void testUnwrappedOperation() throws Exception {
- URL url = getClass().getResource("../xml/unwrapped-stockquote.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, new URI("unwrapped-stockquote.wsdl"), url);
- resolver.addModel(definition);
- definition = resolver.resolveModel(WSDLDefinition.class, definition);
- PortType portType = definition.getDefinition().getPortType(PORTTYPE_NAME);
- Operation operation = portType.getOperation("getLastTradePrice1", null, null);
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
- Assert.assertFalse(op.isWrapperStyle());
- operation = portType.getOperation("getLastTradePrice2", null, null);
- op = new WSDLOperationIntrospectorImpl(xsdFactory, operation, definition, "org.w3c.dom.Node", resolver);
- Assert.assertFalse(op.isWrapperStyle());
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java
deleted file mode 100644
index f23b0d2b59..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
-import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-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.UtilityExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-
-/**
- * Test reading WSDL interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class ReadTestCase extends TestCase {
-
- private XMLInputFactory inputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
- private CompositeBuilder compositeBuilder;
-
- @Override
- public void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- inputFactory = XMLInputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null);
-
- ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
- AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
- SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
- IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
- compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null);
- }
-
- public void testReadComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- ComponentType componentType = (ComponentType)staxProcessor.read(reader);
- assertNotNull(componentType);
- }
-
- public void testReadConstrainingType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorComponent.constrainingType");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- ConstrainingType constrainingType = (ConstrainingType)staxProcessor.read(reader);
- assertNotNull(constrainingType);
- }
-
- public void testReadComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- Composite composite = (Composite)staxProcessor.read(reader);
- assertNotNull(composite);
-
- compositeBuilder.build(composite);
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessorTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessorTestCase.java
deleted file mode 100644
index 2d3a3a54ff..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessorTestCase.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-import javax.wsdl.Import;
-import javax.xml.namespace.QName;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.wsdl.AbstractWSDLTestCase;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WSDLDocumentProcessorTestCase extends AbstractWSDLTestCase {
-
- /**
- * @throws java.lang.Exception
- */
- @Before
- @Override
- public void setUp() throws Exception {
- super.setUp();
- }
-
- /**
- * @throws java.lang.Exception
- */
- @After
- @Override
- public void tearDown() throws Exception {
- }
-
- @Test
- public void testWSDL() throws Exception {
-
- URL url = getClass().getResource("/wsdl/helloworld-service.wsdl");
- WSDLDefinition definition = (WSDLDefinition)documentProcessor.read(null, URI.create("wsdl/helloworld-service.wsdl"), url);
-
- Assert.assertNull(definition.getDefinition());
- Assert.assertEquals("http://helloworld", definition.getNamespace());
- URL url1 = getClass().getResource("/wsdl/helloworld-interface.wsdl");
- WSDLDefinition definition1 = (WSDLDefinition)documentProcessor.read(null, URI.create("wsdl/helloworld-interface.wsdl"), url1);
- Assert.assertNull(definition1.getDefinition());
- Assert.assertEquals("http://helloworld", definition1.getNamespace());
-
- resolver.addModel(definition);
- resolver.addModel(definition1);
- resolver.resolveModel(WSDLDefinition.class, definition);
- resolver.resolveModel(WSDLDefinition.class, definition1);
- WSDLDefinition resolved = resolver.resolveModel(WSDLDefinition.class, definition);
- List imports = (List)definition.getDefinition().getImports().get("http://helloworld");
- Assert.assertNotNull(imports);
- Assert.assertNotNull(((Import)imports.get(0)).getDefinition());
- Assert.assertNotNull(resolved.getDefinition().getPortType(new QName("http://helloworld", "HelloWorld")));
- Assert.assertNotNull(resolved.getDefinition().getService(new QName("http://helloworld", "HelloWorldService")));
-
- assertNotNull(resolved.getXmlSchemaType(new QName("http://greeting", "Name")));
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java
deleted file mode 100644
index c27a1dbd70..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.net.URI;
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-
-/**
- * Test reading WSDL interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLTestCase extends TestCase {
-
- private ExtensibleURLArtifactProcessor documentProcessor;
- private WSDLModelResolver wsdlResolver;
-
- @Override
- public void setUp() throws Exception {
- ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
- documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors, null);
-
- ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
- wsdlResolver = new WSDLModelResolver(null, modelFactories);
- }
-
- public void testReadWSDLDocument() throws Exception {
- URL url = getClass().getResource("example.wsdl");
- WSDLDefinition definition = documentProcessor.read(null, new URI("example.wsdl"), url, WSDLDefinition.class);
- assertNotNull(definition);
- assertNull(definition.getDefinition());
- assertEquals(definition.getNamespace(), "http://www.example.org");
- }
-
- public void testReadWSDLImports() throws Exception {
- QName aBinding = new QName("http://helloworld", "HelloWorldSoapBinding");
- QName aPortType = new QName("http://helloworld", "HelloWorld");
-
- URL url = getClass().getResource("test1.wsdl");
- WSDLDefinition test1Defn = documentProcessor.read(null, new URI("test1.wsdl"), url, WSDLDefinition.class);
- assertNotNull(test1Defn);
- wsdlResolver.addModel(test1Defn);
- test1Defn = wsdlResolver.resolveModel(WSDLDefinition.class, test1Defn);
- //binding is a part of test1.wsdl
- assertNotNull(test1Defn.getDefinition().getBinding(aBinding));
- //porttype is part of test2.wsdl
- assertNotNull(test1Defn.getDefinition().getPortType(aPortType));
- }
-
- public void testReadSameNamespaceWSDLDocument() throws Exception {
- QName aBinding = new QName("http://helloworld", "HelloWorldSoapBinding");
- QName aPortType = new QName("http://helloworld", "HelloWorld");
-
- URL url = getClass().getResource("test2.wsdl");
- WSDLDefinition test2Defn = documentProcessor.read(null, new URI("test2.wsdl"), url, WSDLDefinition.class);
- assertNotNull(test2Defn);
- wsdlResolver.addModel(test2Defn);
- test2Defn = wsdlResolver.resolveModel(WSDLDefinition.class, test2Defn);
-
- //bindings are a part of test1.wsdl so should not be found
- assertNull(test2Defn.getDefinition().getBinding(aBinding));
- assertNotNull(test2Defn.getDefinition().getPortType(aPortType));
-
- url = getClass().getResource("test1.wsdl");
- WSDLDefinition test1Defn = documentProcessor.read(null, new URI("test1.wsdl"), url, WSDLDefinition.class);
- assertNotNull(test1Defn);
- wsdlResolver.addModel(test1Defn);
-
- test1Defn = wsdlResolver.resolveModel(WSDLDefinition.class, test1Defn);
-
- assertNotNull(test1Defn.getDefinition().getPortType(aPortType));
- assertNotNull(test1Defn.getDefinition().getBinding(aBinding));
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WriteTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WriteTestCase.java
deleted file mode 100644
index 6448291f41..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WriteTestCase.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLOutputFactory;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.assembly.ComponentType;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-
-/**
- * Test reading/write WSDL interfaces.
- *
- * @version $Rev$ $Date$
- */
-public class WriteTestCase extends TestCase {
-
- private XMLInputFactory inputFactory;
- private XMLOutputFactory outputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
-
- @Override
- public void setUp() throws Exception {
- DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- inputFactory = XMLInputFactory.newInstance();
- outputFactory = XMLOutputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, null);
- }
-
- public void testReadWriteComponentType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorImpl.componentType");
- ComponentType componentType = (ComponentType)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(componentType);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(componentType, outputFactory.createXMLStreamWriter(bos));
- }
-
- public void testReadWriteConstrainingType() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorComponent.constrainingType");
- ConstrainingType constrainingType = (ConstrainingType)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(constrainingType);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(constrainingType, outputFactory.createXMLStreamWriter(bos));
- }
-
- public void testReadWriteComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("Calculator.composite");
- Composite composite = (Composite)staxProcessor.read(inputFactory.createXMLStreamReader(is));
- assertNotNull(composite);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos));
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XMLDocumentHelperTestCase.java b/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XMLDocumentHelperTestCase.java
deleted file mode 100644
index 105b3da7fa..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XMLDocumentHelperTestCase.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.xml;
-
-import java.net.URL;
-
-import javax.xml.stream.XMLInputFactory;
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.xsd.xml.XMLDocumentHelper;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class XMLDocumentHelperTestCase {
- private URL wsdl;
- private URL xsd;
-
- /**
- * @throws java.lang.Exception
- */
- @Before
- public void setUp() throws Exception {
- wsdl = getClass().getResource("/wsdl/helloworld-interface.wsdl");
- }
-
- @Test
- public void testReadTNS() throws Exception {
- String tns = XMLDocumentHelper.readTargetNamespace(wsdl, XMLDocumentHelper.WSDL11, true, "targetNamespace", XMLInputFactory.newInstance());
- Assert.assertEquals("http://helloworld", tns);
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite
deleted file mode 100644
index 875fdf35d2..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:calc="http://sample.calculator"
- targetNamespace="http://calc"
- xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
- name="Calculator">
-
- <service name="CalculatorService" promote="CalculatorServiceComponent">
- <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"
- wsdli:wsdlLocation="http://tempuri.org"/>
- </service>
-
- <component name="CalculatorServiceComponent">
- <implementation.java class="calculator.CalculatorServiceImpl"/>
- <reference name="addService" target="AddServiceComponent"/>
- <reference name="subtractService" target="SubtractServiceComponent"/>
- <reference name="multiplyService" target="MultiplyServiceComponent"/>
- <reference name="divideService" target="DivideServiceComponent"/>
- </component>
-
- <component name="AddServiceComponent">
- <implementation.java class="calculator.AddServiceImpl"/>
- </component>
-
- <component name="SubtractServiceComponent">
- <implementation.java class="calculator.SubtractServiceImpl"/>
- </component>
-
- <component name="MultiplyServiceComponent">
- <implementation.java class="calculator.MultiplyServiceImpl"/>
- </component>
-
- <component name="DivideServiceComponent">
- <implementation.java class="calculator.DivideServiceImpl"/>
- </component>
-
-</composite>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorComponent.constrainingType b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorComponent.constrainingType
deleted file mode 100644
index 3eb81b61bd..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorComponent.constrainingType
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<constrainingType xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:calc="http://calc"
- targetNamespace="http://calc"
- xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
- name="CalculatorComponent">
-
- <service name="CalculatorService">
- <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"
- wsdli:wsdlLocation="http://tempuri.org"/>
- </service>
-
- <reference name="divideService">
- <interface.wsdl interface="http://sample/calculator#wsdl.interface(Divide)"/>
- </reference>
-
-</constrainingType>
- \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorImpl.componentType b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorImpl.componentType
deleted file mode 100644
index aea7046a3d..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/CalculatorImpl.componentType
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance">
-
- <service name="CalculatorService">
- <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"
- wsdli:wsdlLocation="http://tempuri.org"/>
- </service>
-
- <reference name="divideService">
- <interface.wsdl interface="http://sample/calculator#wsdl.interface(Divide)"/>
- </reference>
-
-</componentType>
- \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/example.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/example.wsdl
deleted file mode 100644
index 5e8e5dad0d..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/example.wsdl
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://www.example.org"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- name="example">
-
- <wsdl:portType name="HelloWorld">
- </wsdl:portType>
-</wsdl:definitions>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/invalid-stockquote.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/invalid-stockquote.wsdl
deleted file mode 100644
index ad81fc7867..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/invalid-stockquote.wsdl
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2001/XMLSchema">
- <element name="getLastTradePrice1">
- <complexType>
- <sequence>
- <element name="tickerSymbol" type="string" />
- </sequence>
- </complexType>
- </element>
- <element name="getLastTradePriceResponse">
- <complexType>
- <sequence>
- <element name="price" type="float" />
- </sequence>
- </complexType>
- </element>
- </schema>
- </types>
-
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd1:getLastTradePrice" />
- </message>
-
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd1:getLastTradePriceResponse" />
- </message>
-
- <portType name="StockQuotePortType">
- <operation name="getLastTradePrice">
- <input message="tns:GetLastTradePriceInput" />
- <output message="tns:GetLastTradePriceOutput" />
- </operation>
- </portType>
-
-</definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/ipo.xsd b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/ipo.xsd
deleted file mode 100644
index 241ec15d36..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/ipo.xsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<schema targetNamespace="http://www.example.com/IPO"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ipo="http://www.example.com/IPO">
-
- <annotation>
- <documentation xml:lang="en">
- International Purchase order schema for Example.com
- Copyright 2000 Example.com. All rights reserved.
- </documentation>
- </annotation>
-
-
- <element name="purchaseOrder" type="ipo:PurchaseOrderType" />
-
- <element name="comment" type="string" />
-
- <complexType name="PurchaseOrderType">
- <sequence>
- <element name="shipTo" type="ipo:Address" />
- <element name="billTo" type="ipo:Address" />
- <element ref="ipo:comment" minOccurs="0" />
- <element name="items" type="ipo:Items" />
- </sequence>
- <attribute name="orderDate" type="date" />
- </complexType>
-
- <complexType name="Items">
- <sequence>
- <element name="item" minOccurs="0" maxOccurs="unbounded">
- <complexType>
- <sequence>
- <element name="productName" type="string" />
- <element name="quantity">
- <simpleType>
- <restriction base="positiveInteger">
- <maxExclusive value="100" />
- </restriction>
- </simpleType>
- </element>
- <element name="USPrice" type="decimal" />
- <element ref="ipo:comment" minOccurs="0" />
- <element name="shipDate" type="date"
- minOccurs="0" />
- </sequence>
- <attribute name="partNum" type="ipo:SKU"
- use="required" />
- </complexType>
- </element>
- </sequence>
- </complexType>
-
- <simpleType name="SKU">
- <restriction base="string">
- <pattern value="\d{3}-[A-Z]{2}" />
- </restriction>
- </simpleType>
-
- <complexType name="Address">
- <sequence>
- <element name="name" type="string" />
- <element name="street" type="string" />
- <element name="city" type="string" />
- </sequence>
- </complexType>
-
- <complexType name="USAddress">
- <complexContent>
- <extension base="ipo:Address">
- <sequence>
- <element name="state" type="ipo:USState" />
- <element name="zip" type="positiveInteger" />
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-
- <complexType name="UKAddress">
- <complexContent>
- <extension base="ipo:Address">
- <sequence>
- <element name="postcode" type="ipo:UKPostcode" />
- </sequence>
- <attribute name="exportCode" type="positiveInteger"
- fixed="1" />
- </extension>
- </complexContent>
- </complexType>
-
- <!-- other Address derivations for more countries -->
-
- <simpleType name="USState">
- <restriction base="string">
- <enumeration value="AK" />
- <enumeration value="AL" />
- <enumeration value="AR" />
- <enumeration value="CA" />
- <enumeration value="PA" />
- <!-- and so on ... -->
- </restriction>
- </simpleType>
-
- <simpleType name="Postcode">
- <restriction base="string">
- <length value="7" fixed="true" />
- </restriction>
- </simpleType>
-
-
- <simpleType name="UKPostcode">
- <restriction base="ipo:Postcode">
- <pattern value="[A-Z]{2}\d\s\d[A-Z]{2}" />
- </restriction>
- </simpleType>
-
-
-
-</schema>
-
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/stockquote.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/stockquote.wsdl
deleted file mode 100644
index 39cd5547d9..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/stockquote.wsdl
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2001/XMLSchema">
- <element name="getLastTradePrice">
- <complexType>
- <sequence>
- <element name="tickerSymbol" type="string" />
- </sequence>
- </complexType>
- </element>
- <element name="getLastTradePriceResponse">
- <complexType>
- <sequence>
- <element name="price" type="float" />
- </sequence>
- </complexType>
- </element>
- </schema>
- </types>
-
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd1:getLastTradePrice" />
- </message>
-
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd1:getLastTradePriceResponse" />
- </message>
-
- <portType name="StockQuotePortType">
- <operation name="getLastTradePrice">
- <input message="tns:GetLastTradePriceInput" />
- <output message="tns:GetLastTradePriceOutput" />
- </operation>
- </portType>
-
-</definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.wsdl
deleted file mode 100644
index 8e26f7b4b5..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.wsdl
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
-
- <wsdl:import location="test2.wsdl" namespace="http://helloworld"></wsdl:import>
-
- <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getGreetings">
- <wsdlsoap:operation soapAction="" />
- <wsdl:input name="getGreetingsRequest">
- <wsdlsoap:body use="literal" />
- </wsdl:input>
- <wsdl:output name="getGreetingsResponse">
- <wsdlsoap:body use="literal" />
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
-
- <wsdl:service name="HelloWorldService">
- <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort">
- <wsdlsoap:address location="http://localhost:8085/sample-helloworldws-1.0-SNAPSHOT/services/HelloWorldWebService" />
- </wsdl:port>
- </wsdl:service>
-
-</wsdl:definitions>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.xsd b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.xsd
deleted file mode 100644
index c2210f4a94..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test1.xsd
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<schema targetNamespace="http://www.example.com/Customer" xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ipo="http://www.example.com/IPO" xmlns:tns="http://www.example.com/Customer">
- <import namespace="http://www.example.com/IPO" schemaLocation="ipo.xsd" />
-
- <complexType name="Customer">
- <sequence>
- <element name="customerID" type="string"></element>
- <element name="name" type="string"></element>
- <element name="order" type="ipo:PurchaseOrderType" />
- </sequence>
- </complexType>
- <element name="customer" type="tns:Customer"></element>
-
-</schema>
-
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test2.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test2.wsdl
deleted file mode 100644
index 529b395fd5..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/test2.wsdl
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
-
- <wsdl:types>
- <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema">
-
- <import namespace="http://www.example.com/IPO" schemaLocation="ipo.xsd" />
-
- <element name="getGreetings">
- <complexType>
- <sequence>
- <element name="name" type="xsd:string" />
- </sequence>
- </complexType>
- </element>
-
- <element name="getGreetingsResponse">
- <complexType>
- <sequence>
- <element name="getGreetingsReturn" type="xsd:string" />
- </sequence>
- </complexType>
- </element>
-
- </schema>
- </wsdl:types>
-
- <wsdl:message name="getGreetingsRequest">
- <wsdl:part element="tns:getGreetings" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="getGreetingsResponse">
- <wsdl:part element="tns:getGreetingsResponse" name="parameters" />
- </wsdl:message>
-
- <wsdl:portType name="HelloWorld">
- <wsdl:operation name="getGreetings">
- <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest" />
- <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse" />
- </wsdl:operation>
- </wsdl:portType>
-
-</wsdl:definitions>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/unwrapped-stockquote.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/unwrapped-stockquote.wsdl
deleted file mode 100644
index 666a7e4069..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/unwrapped-stockquote.wsdl
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2001/XMLSchema">
- <element name="getLastTradePrice">
- <complexType>
- <sequence>
- <element name="tickerSymbol" type="string" />
- </sequence>
- </complexType>
- </element>
- <element name="getLastTradePriceResponse">
- <complexType>
- <sequence>
- <element name="price" type="float" />
- </sequence>
- </complexType>
- </element>
- </schema>
- </types>
-
- <message name="GetLastTradePriceInput1">
- <part name="body" element="xsd1:getLastTradePrice" />
- </message>
-
- <message name="GetLastTradePriceOutput1">
- <part name="body" element="xsd1:getLastTradePriceResponse" />
- </message>
-
- <message name="GetLastTradePriceInput2">
- <part name="body" element="xsd1:getLastTradePrice" />
- <part name="other" type="xsd:string"/>
- </message>
-
- <message name="GetLastTradePriceOutput2">
- <part name="body" element="xsd1:getLastTradePriceResponse" />
- </message>
-
- <portType name="StockQuotePortType">
- <operation name="getLastTradePrice">
- <input message="tns:GetLastTradePriceInput1" />
- <output message="tns:GetLastTradePriceOutput1" />
- </operation>
- <operation name="getLastTradePrice1">
- <input message="tns:GetLastTradePriceInput1" />
- <output message="tns:GetLastTradePriceOutput1" />
- </operation>
- <operation name="getLastTradePrice2">
- <input message="tns:GetLastTradePriceInput2" />
- <output message="tns:GetLastTradePriceOutput2" />
- </operation>
- </portType>
-
-</definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/policy/stockquote_policy.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/policy/stockquote_policy.wsdl
deleted file mode 100644
index 7cdf801692..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/policy/stockquote_policy.wsdl
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<definitions name="StockQuote"
- targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl"
- xmlns:xsd="http://example.com/stockquote.xsd"
- xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2001/XMLSchema">
- <element name="getLastTradePrice">
- <complexType>
- <sequence>
- <element name="tickerSymbol" type="string" />
- </sequence>
- </complexType>
- </element>
- <element name="getLastTradePriceResponse">
- <complexType>
- <sequence>
- <element name="price" type="float" />
- </sequence>
- </complexType>
- </element>
- </schema>
- </types>
-
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd:getLastTradePrice" />
- </message>
-
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd:getLastTradePriceResponse" />
- </message>
-
- <portType name="StockQuotePortType" sca:requires="sca:conversational tns:PolicyIntent">
- <operation name="getLastTradePrice">
- <input message="tns:GetLastTradePriceInput" />
- <output message="tns:GetLastTradePriceOutput" />
- </operation>
- <operation name="cancel" sca:endsConversation="true"/>
- </portType>
-
-</definitions> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-interface.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-interface.wsdl
deleted file mode 100644
index b0b6644e7f..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-interface.wsdl
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
-
- <wsdl:types>
- <schema elementFormDefault="qualified" targetNamespace="http://helloworld"
- xmlns="http://www.w3.org/2001/XMLSchema" xmlns:g="http://greeting">
-
- <!--
- <import namespace="http://greeting" schemaLocation="../xsd/greeting.xsd" />
- -->
- <include schemaLocation="../xsd/helloworld.xsd" />
-
- <element name="getGreetings">
- <complexType>
- <sequence>
- <element name="name" type="g:Name" />
- </sequence>
- </complexType>
- </element>
-
- <element name="getGreetingsResponse">
- <complexType>
- <sequence>
- <element name="getGreetingsReturn" type="g:Greeting" />
- </sequence>
- </complexType>
- </element>
-
- </schema>
- </wsdl:types>
-
- <wsdl:message name="getGreetingsRequest">
- <wsdl:part element="tns:getGreetings" name="parameters" />
- </wsdl:message>
-
- <wsdl:message name="getGreetingsResponse">
- <wsdl:part element="tns:getGreetingsResponse" name="parameters" />
- </wsdl:message>
-
- <wsdl:portType name="HelloWorld">
- <wsdl:operation name="getGreetings">
- <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest" />
- <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse" />
- </wsdl:operation>
- </wsdl:portType>
-
-</wsdl:definitions>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-service.wsdl b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-service.wsdl
deleted file mode 100644
index 0a7979e308..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/wsdl/helloworld-service.wsdl
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
-
- <wsdl:import location="helloworld-interface.wsdl" namespace="http://helloworld"></wsdl:import>
- <!--
- <wsdl:import namespace="http://helloworld"></wsdl:import>
- -->
-
- <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getGreetings">
- <wsdlsoap:operation soapAction="" />
- <wsdl:input name="getGreetingsRequest">
- <wsdlsoap:body use="literal" />
- </wsdl:input>
- <wsdl:output name="getGreetingsResponse">
- <wsdlsoap:body use="literal" />
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
-
- <wsdl:service name="HelloWorldService">
- <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort">
- <wsdlsoap:address
- location="http://localhost:8085/sample-helloworldws-1.0-SNAPSHOT/services/HelloWorldWebService" />
- </wsdl:port>
- </wsdl:service>
-
-</wsdl:definitions>
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/greeting.xsd b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/greeting.xsd
deleted file mode 100644
index 635ca25bfc..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/greeting.xsd
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<schema targetNamespace="http://greeting" xmlns="http://www.w3.org/2001/XMLSchema">
- <include schemaLocation="name.xsd" />
- <complexType name="Greeting">
- <sequence>
- <element name="message" type="string" />
- <element name="name" type="Name" />
- </sequence>
- </complexType>
-
-</schema> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/helloworld.xsd b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/helloworld.xsd
deleted file mode 100644
index bb0c9bc7b7..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/helloworld.xsd
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<schema targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema">
- <import namespace="http://greeting" schemaLocation="greeting.xsd" />
-</schema> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/name.xsd b/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/name.xsd
deleted file mode 100644
index 300de931ec..0000000000
--- a/java/sca/contrib/modules/interface-wsdl-xml/src/test/resources/xsd/name.xsd
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<schema targetNamespace="http://greeting" xmlns="http://www.w3.org/2001/XMLSchema">
-
- <complexType name="Name">
- <sequence>
- <element name="firstName" type="string" />
- <element name="lastName" type="string" />
- </sequence>
- </complexType>
-
-</schema> \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface-wsdl/LICENSE b/java/sca/contrib/modules/interface-wsdl/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface-wsdl/NOTICE b/java/sca/contrib/modules/interface-wsdl/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface-wsdl/pom.xml b/java/sca/contrib/modules/interface-wsdl/pom.xml
deleted file mode 100644
index 65a1b957c5..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/pom.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface-wsdl</artifactId>
- <name>Apache Tuscany SCA WSDL Interface Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-interface</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-xsd</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-policy</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.ws.commons.schema</groupId>
- <artifactId>XmlSchema</artifactId>
- <version>1.4.2</version>
- </dependency>
-
- <dependency>
- <groupId>wsdl4j</groupId>
- <artifactId>wsdl4j</artifactId>
- <version>1.6.2</version>
- </dependency>
- </dependencies>
-
- <repositories>
- <!-- Apache repository for Web Services artifacts -->
- <repository>
- <id>apache.ws.zone</id>
- <name>Apache WS Zone Repository</name>
- <url>http://ws.zones.apache.org/repository2</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface.wsdl</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef.wsdl*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java
deleted file mode 100644
index 2a5dd07d08..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLFactoryImpl;
-
-/**
- * A factory for the WSDL model.
- *
- * @version $Rev$ $Date$
- */
-public class DefaultWSDLFactory extends WSDLFactoryImpl implements WSDLFactory {
-
- public DefaultWSDLFactory(ModelFactoryExtensionPoint modelFactories) {
- super(modelFactories);
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java
deleted file mode 100644
index 039e75f437..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLDefinition.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import java.net.URI;
-import java.util.List;
-
-import javax.wsdl.Binding;
-import javax.wsdl.Definition;
-import javax.wsdl.WSDLElement;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Base;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaType;
-
-/**
- * Represents a WSDL definition.
- * WSDLDefinition
- *
- * @version $Rev$ $Date$
- */
-public interface WSDLDefinition extends Base {
-
- /**
- * Returns the WSDL definition model, if there are more than one WSDL definition under the
- * same namespace, the definition will be a facade which imports all the physical WSDL
- * definitions
- *
- * @return the WSDL definition model
- */
- Definition getDefinition();
-
- /**
- * Sets the WSDL definition model
- * @param definition the WSDL definition model
- */
- void setDefinition(Definition definition);
-
- /**
- * Returns the namespace of this WSDL definition.
- * @return the namespace of this WSDL definition
- */
- String getNamespace();
-
- /**
- * Sets the namespace of this WSDL definition.
- * @param namespace the namespace of this WSDL definition
- */
- void setNamespace(String namespace);
-
- /**
- * Get a list of inline XML schema definitions
- * @return A list of inline XML schema definitions
- */
- List<XSDefinition> getXmlSchemas();
-
- /**
- * Get the location of the WSDL file
- * @return The location of the WSDL file
- */
- URI getLocation();
-
- /**
- * Set the location of the WSDL file
- * @param url
- */
- void setLocation(URI url);
-
- /**
- * Get the contribution artifact URI of the WSDL document
- * @return The URI of the WSDL document
- */
- URI getURI();
-
- /**
- * Set the contribution artifact URI of the WSDL document
- * @param uri
- */
- void setURI(URI uri);
-
- /**
- * Get the WSDL definitions imported by this definition
- * @return A list of imported WSDL definitions
- */
- List<WSDLDefinition> getImportedDefinitions();
-
- /**
- * Get an XSD element by QName
- * @param name
- * @return
- */
- XmlSchemaElement getXmlSchemaElement(QName name);
-
- /**
- * Get an XSD type by QName
- * @param name
- * @return
- */
- XmlSchemaType getXmlSchemaType(QName name);
-
- /**
- * Get the WSDL object by type and name
- * @param <T>
- * @param type javax.wsdl.Service/PortType/Binding/Message.class
- * @param name The QName of the object
- * @return WSDLObject
- */
- <T extends WSDLElement> WSDLObject<T> getWSDLObject(Class<T> type, QName name);
-
- /**
- * Get the generated binding for a WSDLDefinition
- * @return the WSDL binding
- */
- Binding getBinding();
-
- /**
- * Set the generated binding for a WSDLDefinition
- * @param binding the WSDL binding
- */
- void setBinding(Binding binding);
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLFactory.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLFactory.java
deleted file mode 100644
index 95985dcc28..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLFactory.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import javax.wsdl.PortType;
-
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-
-/**
- * Factory for the WSDL model.
- *
- * @version $Rev$ $Date$
- */
-public interface WSDLFactory {
-
- /**
- * Creates a new WSDL interface.
- *
- * @return a new WSDL interface
- */
- WSDLInterface createWSDLInterface();
-
- /**
- * Creates a new WSDL interface from a WSDL portType.
- *
- * @param portType the portType to inspect
- * @return a WSDLInterface corresponding to the WSDL portType
- */
- WSDLInterface createWSDLInterface(PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidInterfaceException;
-
- /**
- * Creates the contents of a WSDL interface from a WSDL portType.
- *
- * @param portType the portType to inspect
- * @return a WSDLInterface corresponding to the WSDL portType
- */
- void createWSDLInterface(WSDLInterface wsdlInterface, PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidInterfaceException;
-
- /**
- * Creates a new WSDL definition.
- *
- * @return a new WSDL definition
- */
- WSDLDefinition createWSDLDefinition();
-
- /**
- * Creates a new WSDL interface contract.
- *
- * @return
- */
- WSDLInterfaceContract createWSDLInterfaceContract();
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterface.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterface.java
deleted file mode 100644
index c0da060af2..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterface.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Base;
-import org.apache.tuscany.sca.interfacedef.Interface;
-
-
-/**
- * Represents a WSDL interface.
- *
- * @version $Rev$ $Date$
- */
-public interface WSDLInterface extends Interface, Base {
-
- /**
- * Returns the name of the WSDL interface.
- *
- * @return the name of the WSDL interface
- */
- QName getName();
-
- /**
- * Sets the name of the WSDL interface.
- *
- * @param interfaceName the name of the WSDL interface
- */
- void setName(QName interfaceName);
-
- /**
- * Returns the WSDL interface portType.
- *
- * @return the WSDL interface portType
- */
- PortType getPortType();
-
- /**
- * Sets the WSDL interface portType
- *
- * @param portType the WSDL interface portType
- */
- void setPortType(PortType portType);
-
- WSDLDefinition getWsdlDefinition();
-
- void setWsdlDefinition(WSDLDefinition wsdlDefinition);
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterfaceContract.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterfaceContract.java
deleted file mode 100644
index 59db17116b..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLInterfaceContract.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-
-
-/**
- * Represents a WSDL interface contract.
- *
- * @version $Rev$ $Date$
- */
-public interface WSDLInterfaceContract extends InterfaceContract {
-
- /**
- * Sets the WSDL location.
- * @param location the WSDL location
- */
- void setLocation(String location);
-
- /**
- * Returns the WSDL location
- * @return the WSDL location
- */
- String getLocation();
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java
deleted file mode 100644
index 0b707163da..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import java.io.Serializable;
-
-import javax.wsdl.Definition;
-
-/**
- * Model for objects in a WSDL definition
- * @version $Rev$ $Date$
- */
-public interface WSDLObject<T extends Serializable> {
- /**
- * Get the owning definition where the element is declared
- * @return The owning definition
- */
- Definition getDefinition();
-
- /**
- * Set the owning definition
- * @param definition
- */
- void setDefinition(Definition definition);
-
- /**
- * Get the WSDL element such as Service, PortType, Binding or Message
- * @return The WSDL element
- */
- T getElement();
-
- /**
- * Set the WSDL element
- * @param element
- */
- void setElement(T element);
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLOperation.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLOperation.java
deleted file mode 100644
index d73cccb714..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLOperation.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl;
-
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * WSDL 1.1 Operation
- * @version $Rev$ $Date$
- */
-public interface WSDLOperation extends Operation {
- /**
- * Get the underlying WSDL operation
- * @return
- */
- javax.wsdl.Operation getWsdlOperation();
-
- /**
- * Set the underlying WSDL operation
- * @param operation
- */
- void setWsdlOperation(javax.wsdl.Operation operation);
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/InvalidWSDLException.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/InvalidWSDLException.java
deleted file mode 100644
index 1e7b4faa32..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/InvalidWSDLException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-
-/**
- * An exception to indicate the WSDL definition is invalid
- *
- * @version $Rev$ $Date$
- */
-public class InvalidWSDLException extends InvalidInterfaceException {
- private static final long serialVersionUID = 3742887584293256519L;
-
- public InvalidWSDLException(String message) {
- super(message);
- }
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java
deleted file mode 100644
index 16e9cf43f3..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLDefinitionImpl.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import static org.apache.tuscany.sca.xsd.impl.XSDefinitionImpl.getXmlSchemaObject;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.Binding;
-import javax.wsdl.Definition;
-import javax.wsdl.Import;
-import javax.wsdl.Message;
-import javax.wsdl.PortType;
-import javax.wsdl.Service;
-import javax.wsdl.WSDLElement;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLObject;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaType;
-
-/**
- * Represents a WSDL definition.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLDefinitionImpl implements WSDLDefinition {
-
- private Definition definition;
- private String namespace;
- private URI location;
- private URI uri;
- private List<WSDLDefinition> imported = new ArrayList<WSDLDefinition>();
- private List<XSDefinition> schemas = new ArrayList<XSDefinition>();
- private boolean unresolved;
- private Binding binding;
-
- protected WSDLDefinitionImpl() {
- }
-
- public Definition getDefinition() {
- return definition;
- }
-
- public void setDefinition(Definition definition) {
- this.definition = definition;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean undefined) {
- this.unresolved = undefined;
- }
-
- public String getNamespace() {
- if (isUnresolved()) {
- return namespace;
- } else if (definition != null) {
- return definition.getTargetNamespace();
- } else {
- return namespace;
- }
- }
-
- public void setNamespace(String namespace) {
- if (!isUnresolved()) {
- throw new IllegalStateException();
- } else {
- this.namespace = namespace;
- }
- }
-
- /*
- @Override
- public int hashCode() {
- return String.valueOf(getNamespace()).hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- } else if (obj instanceof WSDLDefinition) {
- WSDLDefinition def = (WSDLDefinition)obj;
- if (getNamespace() != null) {
- return getNamespace().equals(def.getNamespace());
- } else {
- return def.getNamespace() == null;
- }
- } else {
- return false;
- }
- }
- */
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getXmlSchemas()
- */
- public List<XSDefinition> getXmlSchemas() {
- return schemas;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getLocation()
- */
- public URI getLocation() {
- return location;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#setLocation(java.net.URI)
- */
- public void setLocation(URI url) {
- this.location = url;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getURI()
- */
- public URI getURI() {
- return uri;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#setURI(java.net.URI)
- */
- public void setURI(URI uri) {
- this.uri = uri;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getImportedDefinitions()
- */
- public List<WSDLDefinition> getImportedDefinitions() {
- return imported;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((location == null) ? 0 : location.hashCode());
- result = prime * result + ((namespace == null) ? 0 : namespace.hashCode());
- return result;
- }
-
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (!(obj instanceof WSDLDefinitionImpl))
- return false;
- final WSDLDefinitionImpl other = (WSDLDefinitionImpl)obj;
- if (location == null) {
- if (other.location != null)
- return false;
- } else if (!location.equals(other.location))
- return false;
- if (namespace == null) {
- if (other.namespace != null)
- return false;
- } else if (!namespace.equals(other.namespace))
- return false;
- return true;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getXmlSchemaElement(javax.xml.namespace.QName)
- */
- public XmlSchemaElement getXmlSchemaElement(QName name) {
- XmlSchemaCollection schemaCollection = null;
- for (XSDefinition xsd : schemas) {
- if (schemaCollection == null && xsd.getSchemaCollection() != null) {
- schemaCollection = xsd.getSchemaCollection();
- }
- XmlSchema schema = xsd.getSchema();
- XmlSchemaElement element = getXmlSchemaObject(schema, name, XmlSchemaElement.class);
- if (element != null) {
- return element;
- }
- }
- if (schemaCollection != null) {
- return schemaCollection.getElementByQName(name);
- }
- return null;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition#getXmlSchemaType(javax.xml.namespace.QName)
- */
- public XmlSchemaType getXmlSchemaType(QName name) {
- XmlSchemaCollection schemaCollection = null;
- for (XSDefinition xsd : schemas) {
- if (xsd.getSchemaCollection() != null) {
- schemaCollection = xsd.getSchemaCollection();
- }
- XmlSchema schema = xsd.getSchema();
- XmlSchemaType type = getXmlSchemaObject(schema, name, XmlSchemaType.class);
- if (type != null) {
- return type;
- }
- }
- if (schemaCollection != null) {
- return schemaCollection.getTypeByQName(name);
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- private static <T extends WSDLElement> WSDLObject<T> getWSDLObject(Definition definition, Class<T> type, QName name) {
- if (definition == null) {
- return null;
- }
- Map<QName, WSDLElement> map = null;
- if (type == PortType.class) {
- map = definition.getPortTypes();
- } else if (type == Service.class) {
- map = definition.getServices();
- } else if (type == Binding.class) {
- map = definition.getBindings();
- } else if (type == Message.class) {
- map = definition.getMessages();
- } else {
- throw new IllegalArgumentException("Invalid type: " + type.getName());
- }
- if (map.containsKey(name)) {
- return (WSDLObject<T>)new WSDLObjectImpl(definition, map.get(name));
- } else {
- for (Object imports : definition.getImports().values()) {
- List<Import> importList = (List<Import>)imports;
- for (Import i : importList) {
- definition = i.getDefinition();
- WSDLObject<T> element = getWSDLObject(definition, type, name);
- if (element != null) {
- return element;
- }
- }
- }
- }
- return null;
- }
-
- public <T extends WSDLElement> WSDLObject<T> getWSDLObject(Class<T> type, QName name) {
- return getWSDLObject(definition, type, name);
- }
-
- public Binding getBinding() {
- return binding;
- }
-
- public void setBinding(Binding binding) {
- this.binding = binding;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java
deleted file mode 100644
index 1f2263e1c9..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import javax.wsdl.PortType;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
-
-/**
- * A factory for the WSDL model.
- *
- * @version $Rev$ $Date$
- */
-public abstract class WSDLFactoryImpl implements WSDLFactory {
-
- private WSDLInterfaceIntrospectorImpl introspector;
-
- public WSDLFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
- introspector = new WSDLInterfaceIntrospectorImpl(modelFactories);
- }
-
- public WSDLInterface createWSDLInterface() {
- return new WSDLInterfaceImpl();
- }
-
- public WSDLInterface createWSDLInterface(PortType portType,
- WSDLDefinition wsdlDefinition,
- ModelResolver resolver) throws InvalidInterfaceException {
- WSDLInterface wsdlInterface = createWSDLInterface();
- introspector.introspectPortType(wsdlInterface, portType, wsdlDefinition, resolver);
- return wsdlInterface;
- }
-
- public void createWSDLInterface(WSDLInterface wsdlInterface,
- PortType portType,
- WSDLDefinition wsdlDefinition,
- ModelResolver resolver) throws InvalidInterfaceException {
- introspector.introspectPortType(wsdlInterface, portType, wsdlDefinition, resolver);
- }
-
- public WSDLDefinition createWSDLDefinition() {
- return new WSDLDefinitionImpl();
- }
-
- public WSDLInterfaceContract createWSDLInterfaceContract() {
- return new WSDLInterfaceContractImpl();
- }
-
- public WSDLInterfaceIntrospectorImpl getWSDLInterfaceIntrospector() {
- return introspector;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceContractImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceContractImpl.java
deleted file mode 100644
index e10bc0d178..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceContractImpl.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractImpl;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
-
-/**
- * Represents a WSDL interface contract.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLInterfaceContractImpl extends InterfaceContractImpl implements WSDLInterfaceContract {
- private String location;
-
- protected WSDLInterfaceContractImpl() {
- }
-
- public String getLocation() {
- return location;
- }
-
- public void setLocation(String location) {
- this.location = location;
- }
-
- @Override
- public WSDLInterfaceContractImpl clone() throws CloneNotSupportedException {
- return (WSDLInterfaceContractImpl) super.clone();
- }
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceImpl.java
deleted file mode 100644
index 3719bbd79a..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-
-/**
- * Represents a WSDL interface.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLInterfaceImpl extends InterfaceImpl implements WSDLInterface {
-
- private QName name;
- private PortType portType;
- private WSDLDefinition wsdlDefinition;
-
- protected WSDLInterfaceImpl() {
- setRemotable(true);
- }
-
- public QName getName() {
- if (isUnresolved()) {
- return name;
- } else {
- return portType.getQName();
- }
- }
-
- public void setName(QName interfaceName) {
- if (!isUnresolved()) {
- throw new IllegalStateException();
- }
- this.name = interfaceName;
- }
-
- public PortType getPortType() {
- return portType;
- }
-
- public void setPortType(PortType portType) {
- this.portType = portType;
- }
-
- @Override
- public int hashCode() {
- return String.valueOf(getName()).hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- } else if (obj instanceof WSDLInterface) {
- if (getName() != null) {
- return getName().equals(((WSDLInterface)obj).getName());
- } else {
- return ((WSDLInterface)obj).getName() == null;
- }
- } else {
- return false;
- }
- }
-
- public WSDLDefinition getWsdlDefinition() {
- return wsdlDefinition;
- }
-
- public void setWsdlDefinition(WSDLDefinition wsdlDefinition) {
- this.wsdlDefinition = wsdlDefinition;
- }
-
- @Override
- public WSDLInterfaceImpl clone() throws CloneNotSupportedException {
- return (WSDLInterfaceImpl) super.clone();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
deleted file mode 100644
index 18fce72f90..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Vector;
-
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-
-/**
- * Introspector for creating WSDLInterface definitions from WSDL PortTypes.
- *
- * @version $Rev$ $Date$
- */
-public class WSDLInterfaceIntrospectorImpl {
- private static final QName POLICY_REQUIRES = new QName("http://www.osoa.org/xmlns/sca/1.0", "requires");
- private static final QName POLICY_CONVERSATIONAL = new QName("http://www.osoa.org/xmlns/sca/1.0", "conversational");
- public static final QName POLICY_END_CONVERSATION = new QName("http://www.osoa.org/xmlns/sca/1.0", "endsConversation");
-
- private XSDFactory xsdFactory;
- private PolicyFactory policyFactory;
-
- public WSDLInterfaceIntrospectorImpl(ModelFactoryExtensionPoint modelFactories) {
- this.xsdFactory = modelFactories.getFactory(XSDFactory.class);;
- this.policyFactory = modelFactories.getFactory(PolicyFactory.class);;
- }
-
- // FIXME: Do we want to deal with document-literal wrapped style based on the JAX-WS Specification?
- private List<Operation> introspectOperations(PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidWSDLException {
- List<Operation> operations = new ArrayList<Operation>();
- for (Object o : portType.getOperations()) {
- javax.wsdl.Operation wsdlOp = (javax.wsdl.Operation)o;
- Operation operation = getOperation(wsdlOp, wsdlDefinition, resolver, xsdFactory);
- if(isEndConversation(wsdlOp)) {
- operation.setConversationSequence(ConversationSequence.CONVERSATION_END);
- }
- operations.add(operation);
- }
- return operations;
- }
-
- public void introspectPortType(WSDLInterface wsdlInterface, PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidWSDLException {
- processIntents(wsdlInterface, portType);
- wsdlInterface.setPortType(portType);
- wsdlInterface.getOperations().addAll(introspectOperations(portType, wsdlDefinition, resolver));
- wsdlInterface.setConversational(isConversational(portType));
- }
-
- public static Operation getOperation(javax.wsdl.Operation wsdlOp,
- WSDLDefinition wsdlDefinition,
- ModelResolver resolver,
- XSDFactory xsdFactory) throws InvalidWSDLException {
- WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, wsdlOp, wsdlDefinition, null, resolver);
- return op.getOperation();
- }
-
- private void processIntents(WSDLInterface wsdlInterface, PortType portType) {
- Object o;
- try {
- o = portType.getExtensionAttribute(POLICY_REQUIRES);
- } catch (NoSuchMethodError e) {
- // That method does not exist on older WSDL4J levels
- o = null;
- }
- if(o != null && o instanceof Vector) {
- Vector<QName> policyAttributes = (Vector<QName>) o;
-
- Enumeration<QName> policyItents = policyAttributes.elements();
- while(policyItents.hasMoreElements()) {
- QName intentName = policyItents.nextElement();
-
- //ignores conversational, as it will have it's own
- //attribute in the wsdl interface model
- if(! intentName.equals(POLICY_CONVERSATIONAL)) {
- //process the intent
- System.out.println(">>> Intent : " + intentName);
-
- // Add each intent to the list
- Intent intent = policyFactory.createIntent();
- intent.setName(intentName);
-
- wsdlInterface.getRequiredIntents().add(intent);
- }
- }
-
- }
- }
-
- private boolean isConversational(PortType portType) {
- boolean conversational = false;
-
- Object o;
- try {
- o = portType.getExtensionAttribute(POLICY_REQUIRES);
- } catch (NoSuchMethodError e) {
- // That method does not exist on older WSDL4J levels
- o =null;
- }
- if(o != null && o instanceof Vector) {
- Vector<QName> policyAttributes = (Vector<QName>) o;
-
- if(policyAttributes.contains(POLICY_CONVERSATIONAL)) {
- return true;
- }
-
- }
-
- return conversational;
- }
-
- private boolean isEndConversation(javax.wsdl.Operation operation) {
- boolean endConversation = false;
-
- Object o;
- try {
- o = operation.getExtensionAttribute(POLICY_END_CONVERSATION);
- } catch (NoSuchMethodError e) {
- // That method does not exist on older WSDL4J levels
- o = null;
- }
- if(o != null && o instanceof String) {
- endConversation = Boolean.valueOf((String)o);
- }
-
- return endConversation;
-
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java
deleted file mode 100644
index f18eaef27b..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import java.io.Serializable;
-
-import javax.wsdl.Definition;
-
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLObject;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WSDLObjectImpl<T extends Serializable> implements WSDLObject<T> {
- private Definition definition;
- private T element;
-
- public WSDLObjectImpl() {
- super();
- }
-
- public WSDLObjectImpl(Definition definition, T element) {
- super();
- this.definition = definition;
- this.element = element;
- }
-
- public Definition getDefinition() {
- return definition;
- }
-
- public void setDefinition(Definition definition) {
- this.definition = definition;
- }
-
- public T getElement() {
- return element;
- }
-
- public void setElement(T element) {
- this.element = element;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationImpl.java
deleted file mode 100644
index 317b9cce81..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import javax.wsdl.Operation;
-
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation;
-
-/**
- * @version $Rev$ $Date$
- */
-public class WSDLOperationImpl extends OperationImpl implements WSDLOperation {
- private Operation operation;
-
- public WSDLOperationImpl() {
- super();
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation#getWsdlOperation()
- */
- public Operation getWsdlOperation() {
- return operation;
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation#setWsdlOperation(javax.wsdl.Operation)
- */
- public void setWsdlOperation(Operation operation) {
- this.operation = operation;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((operation == null) ? 0 : operation.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (!super.equals(obj))
- return false;
- if (getClass() != obj.getClass())
- return false;
- final WSDLOperationImpl other = (WSDLOperationImpl)obj;
- if (operation == null) {
- if (other.operation != null)
- return false;
- } else if (!operation.equals(other.operation))
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- return operation == null ? null : operation.toString();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java b/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
deleted file mode 100644
index ab6467bfd7..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
+++ /dev/null
@@ -1,602 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.wsdl.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.wsdl.Fault;
-import javax.wsdl.Input;
-import javax.wsdl.Message;
-import javax.wsdl.Output;
-import javax.wsdl.Part;
-import javax.xml.XMLConstants;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-import org.apache.tuscany.sca.interfacedef.util.ElementInfo;
-import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.apache.tuscany.sca.interfacedef.util.TypeInfo;
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
-import org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.tuscany.sca.xsd.XSDFactory;
-
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaObject;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
-import org.apache.ws.commons.schema.XmlSchemaParticle;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
-import org.apache.ws.commons.schema.XmlSchemaType;
-
-/**
- * Metadata for a WSDL operation
- *
- * @version $Rev$ $Date$
- */
-public class WSDLOperationIntrospectorImpl {
- private static final Logger logger = Logger.getLogger(WSDLOperationIntrospectorImpl.class.getName());
- private static final QName ANY = new QName(XMLConstants.W3C_XML_SCHEMA_NS_URI, "any");
-
- private XSDFactory xsdFactory;
- private ModelResolver resolver;
- private WSDLDefinition wsdlDefinition;
- private javax.wsdl.Operation operation;
- private WSDLOperation operationModel;
- private DataType<List<DataType>> inputType;
- private DataType outputType;
- private List<DataType> faultTypes;
- private String dataBinding;
-
- /**
- * @param wsdlFactory The WSDLFactory to use
- * @param operation The WSDL4J operation
- * @param wsdlDefinition The WSDL Definition
- * @param dataBinding The default databinding
- * @param resolver The ModelResolver to use
- */
- public WSDLOperationIntrospectorImpl(XSDFactory xsdFactory,
- javax.wsdl.Operation operation,
- WSDLDefinition wsdlDefinition,
- String dataBinding,
- ModelResolver resolver) {
- super();
- this.xsdFactory = xsdFactory;
- this.operation = operation;
- this.wsdlDefinition = wsdlDefinition;
- this.resolver = resolver;
- this.dataBinding = dataBinding;
- this.wrapper = new Wrapper();
- }
-
- private Wrapper wrapper;
-
- private Boolean wrapperStyle;
-
- /**
- * Test if the operation qualifies wrapper style as defined by the JAX-WS
- * 2.0 Specification
- *
- * @return true if the operation qualifies wrapper style, otherwise false
- */
- public boolean isWrapperStyle() throws InvalidWSDLException {
- if (wrapperStyle == null) {
- wrapperStyle =
- (operation.getInput() == null || operation.getInput().getMessage() == null
- || operation.getInput().getMessage().getParts().size() == 0 || wrapper.getInputChildElements() != null) && (operation
- .getOutput() == null || operation.getOutput().getMessage() == null
- || operation.getOutput().getMessage().getParts().size() == 0 || wrapper.getOutputChildElements() != null);
- }
- return wrapperStyle;
- }
-
- public Wrapper getWrapper() throws InvalidWSDLException {
- if (!isWrapperStyle()) {
- throw new IllegalStateException("The operation is not wrapper style.");
- } else {
- return wrapper;
- }
- }
-
- /**
- * @return
- * @throws InvalidServiceContractException
- */
- public DataType<List<DataType>> getInputType() throws InvalidWSDLException {
- if (inputType == null) {
- Input input = operation.getInput();
- Message message = (input == null) ? null : input.getMessage();
- inputType = getMessageType(message);
- inputType.setDataBinding("idl:input");
- }
- return inputType;
- }
-
- /**
- * @return
- * @throws NotSupportedWSDLException
- */
- @SuppressWarnings("unchecked")
- public DataType<XMLType> getOutputType() throws InvalidWSDLException {
- if (outputType == null) {
- Output output = operation.getOutput();
- Message outputMsg = (output == null) ? null : output.getMessage();
-
- List outputParts = (outputMsg == null) ? null : outputMsg.getOrderedParts(null);
- if (outputParts != null && outputParts.size() > 0) {
- if (outputParts.size() > 1) {
- // We don't support output with multiple parts
- if (logger.isLoggable(Level.WARNING)) {
- logger.warning("Multi-part output is not supported, please use BARE parameter style.");
- }
- // throw new InvalidWSDLException("Multi-part output is not supported");
- }
- Part part = (Part)outputParts.get(0);
- outputType = new WSDLPart(part, Object.class).getDataType();
- // outputType.setMetadata(WSDLOperation.class.getName(), this);
- }
- }
- return outputType;
- }
-
- /**
- * @return
- * @throws NotSupportedWSDLException
- */
- public List<DataType> getFaultTypes() throws InvalidWSDLException {
- if (faultTypes == null) {
- Collection faults = operation.getFaults().values();
- faultTypes = new ArrayList<DataType>();
- for (Object f : faults) {
- Fault fault = (Fault)f;
- Message faultMsg = fault.getMessage();
- List faultParts = faultMsg.getOrderedParts(null);
- if (faultParts.size() != 1) {
- throw new InvalidWSDLException("The fault message MUST have a single part");
- }
- Part part = (Part)faultParts.get(0);
- WSDLPart wsdlPart = new WSDLPart(part, Object.class);
- faultTypes.add(new DataTypeImpl<DataType>(FaultException.class, wsdlPart.getDataType()));
- }
- }
- return faultTypes;
- }
-
- private DataType<List<DataType>> getMessageType(Message message) throws InvalidWSDLException {
- List<DataType> partTypes = new ArrayList<DataType>();
- if (message != null) {
- Collection parts = message.getOrderedParts(null);
- for (Object p : parts) {
- WSDLPart part = new WSDLPart((Part)p, Object.class);
- DataType<XMLType> partType = part.getDataType();
- partTypes.add(partType);
- }
- }
- return new DataTypeImpl<List<DataType>>(dataBinding, Object[].class, partTypes);
- }
-
- /**
- * @return
- * @throws NotSupportedWSDLException
- */
- public Operation getOperation() throws InvalidWSDLException {
- if (operationModel == null) {
- boolean oneway = (operation.getOutput() == null);
- operationModel = new WSDLOperationImpl();
- operationModel.setWsdlOperation(operation);
- operationModel.setName(operation.getName());
- operationModel.setFaultTypes(getFaultTypes());
- operationModel.setNonBlocking(oneway);
- operationModel.setConversationSequence(ConversationSequence.CONVERSATION_NONE);
- operationModel.setInputType(getInputType());
- operationModel.setOutputType(getOutputType());
-
- operationModel.setWrapperStyle(isWrapperStyle());
- if (isWrapperStyle()) {
- WrapperInfo wrapperInfo = getWrapper().getWrapperInfo();
- operationModel.setWrapper(wrapperInfo);
- }
- }
- return operationModel;
- }
-
- private XmlSchemaElement getElement(QName elementName) {
-
- XmlSchemaElement element = wsdlDefinition.getXmlSchemaElement(elementName);
- if (element == null) {
- XSDefinition definition = xsdFactory.createXSDefinition();
- definition.setUnresolved(true);
- definition.setNamespace(elementName.getNamespaceURI());
- definition = resolver.resolveModel(XSDefinition.class, definition);
- if (definition.getSchema() != null) {
- element = definition.getSchema().getElementByName(elementName);
- }
- }
- return element;
- }
-
- private XmlSchemaType getType(QName typeName) {
- XmlSchemaType type = wsdlDefinition.getXmlSchemaType(typeName);
- if (type == null) {
- XSDefinition definition = xsdFactory.createXSDefinition();
- definition.setUnresolved(true);
- definition.setNamespace(typeName.getNamespaceURI());
- definition = resolver.resolveModel(XSDefinition.class, definition);
- if (definition.getSchema() != null) {
- type = definition.getSchema().getTypeByName(typeName);
- }
- }
- return type;
- }
-
- /**
- * Metadata for a WSDL part
- */
- public class WSDLPart {
- private Part part;
-
- private XmlSchemaElement element;
-
- private DataType dataType;
-
- public WSDLPart(Part part, Class javaType) throws InvalidWSDLException {
- this.part = part;
- QName elementName = part.getElementName();
- if (elementName != null) {
- element = WSDLOperationIntrospectorImpl.this.getElement(elementName);
- if (element == null) {
- throw new InvalidWSDLException("Element cannot be resolved: " + elementName.toString());
- }
- } else {
- // Create an faked XSD element to host the metadata
- element = new XmlSchemaElement();
- element.setName(part.getName());
- element.setQName(new QName(null, part.getName()));
- QName typeName = part.getTypeName();
- if (typeName != null) {
- XmlSchemaType type = WSDLOperationIntrospectorImpl.this.getType(typeName);
- if (type == null) {
- throw new InvalidWSDLException("Type cannot be resolved: " + typeName.toString());
- }
- element.setSchemaType(type);
- element.setSchemaTypeName(type.getQName());
- }
- }
- XMLType xmlType = new XMLType(getElementInfo(element));
- xmlType.setNillable(element.isNillable());
- xmlType.setMany(element.getMaxOccurs() > 1);
- dataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
- }
-
- /**
- * @return the element
- */
- public XmlSchemaElement getElement() {
- return element;
- }
-
- /**
- * @return the part
- */
- public Part getPart() {
- return part;
- }
-
- /**
- * @return the dataType
- */
- public DataType<XMLType> getDataType() {
- return dataType;
- }
- }
-
- /**
- * The "Wrapper Style" WSDL operation is defined by The Java API for
- * XML-Based Web Services (JAX-WS) 2.0 specification, section 2.3.1.2
- * Wrapper Style. <p/> A WSDL operation qualifies for wrapper style mapping
- * only if the following criteria are met:
- * <ul>
- * <li>(i) The operation�s input and output messages (if present) each
- * contain only a single part
- * <li>(ii) The input message part refers to a global element declaration
- * whose localname is equal to the operation name
- * <li>(iii) The output message part refers to a global element declaration
- * <li>(iv) The elements referred to by the input and output message parts
- * (henceforth referred to as wrapper elements) are both complex types
- * defined using the xsd:sequence compositor
- * <li>(v) The wrapper elements only contain child elements, they must not
- * contain other structures such as wildcards (element or attribute),
- * xsd:choice, substitution groups (element references are not permitted) or
- * attributes; furthermore, they must not be nillable.
- * </ul>
- */
- public class Wrapper {
- private XmlSchemaElement inputWrapperElement;
-
- private XmlSchemaElement outputWrapperElement;
-
- private List<XmlSchemaElement> inputElements;
-
- private List<XmlSchemaElement> outputElements;
-
- // private DataType<List<DataType<XMLType>>> unwrappedInputType;
- //
- // private DataType<XMLType> unwrappedOutputType;
-
- private transient WrapperInfo wrapperInfo;
-
- private List<XmlSchemaElement> getChildElements(XmlSchemaElement element) throws InvalidWSDLException {
- if (element == null) {
- return null;
- }
- if (element.isNillable()) {
- // Wrapper element cannot be nillable
- return null;
- }
- XmlSchemaType type = element.getSchemaType();
- if (type == null) {
- String qName = element.getQName().toString();
- throw new InvalidWSDLException("The XML schema element does not have a type: " + qName);
- }
- if (!(type instanceof XmlSchemaComplexType)) {
- // Has to be a complexType
- return null;
- }
- XmlSchemaComplexType complexType = (XmlSchemaComplexType)type;
- if (complexType.getAttributes().getCount() != 0 || complexType.getAnyAttribute() != null) {
- // No attributes
- return null;
- }
- XmlSchemaParticle particle = complexType.getParticle();
- if (particle == null) {
- // No particle
- return Collections.emptyList();
- }
- if (!(particle instanceof XmlSchemaSequence)) {
- return null;
- }
- XmlSchemaSequence sequence = (XmlSchemaSequence)complexType.getParticle();
- XmlSchemaObjectCollection items = sequence.getItems();
- List<XmlSchemaElement> childElements = new ArrayList<XmlSchemaElement>();
- for (int i = 0; i < items.getCount(); i++) {
- XmlSchemaObject schemaObject = items.getItem(i);
- if (!(schemaObject instanceof XmlSchemaElement)) {
- // Should contain elements only
- return null;
- }
- XmlSchemaElement childElement = (XmlSchemaElement)schemaObject;
- /*
- if (childElement.getSubstitutionGroup() != null) {
- return null;
- }
- */
- if (childElement.getName() == null || childElement.getRefName() != null) {
- XmlSchemaElement ref = getElement(childElement.getRefName());
- if (ref == null) {
- throw new InvalidWSDLException("XML schema element ref cannot be resolved: " + childElement);
- }
- childElement = ref;
- }
- if (ANY.equals(childElement.getQName())) {
- // Wildcard is not allowed
- return null;
- }
- // TODO: Do we support maxOccurs >1 ?
- if (childElement.getMaxOccurs() > 1) {
- // TODO: [rfeng] To be implemented
- /*
- if(logger.isLoggable(Level.WARNING)) {
- logger.warning("Support for elements with maxOccurs>1 is not implemented.");
- }
- */
- // return null;
- }
- childElements.add(childElement);
- }
- return childElements;
- }
-
- /**
- * Return a list of child XSD elements under the wrapped request element
- *
- * @return a list of child XSD elements or null if if the request
- * element is not wrapped
- */
- public List<XmlSchemaElement> getInputChildElements() throws InvalidWSDLException {
- if (inputElements != null) {
- return inputElements;
- }
- Input input = operation.getInput();
- if (input != null) {
- Message inputMsg = input.getMessage();
- Collection parts = inputMsg.getParts().values();
- if (parts.size() != 1) {
- return null;
- }
- Part part = (Part)parts.iterator().next();
- QName elementName = part.getElementName();
- if (elementName == null) {
- return null;
- }
- if (!operation.getName().equals(elementName.getLocalPart())) {
- return null;
- }
- inputWrapperElement = getElement(elementName);
- if (inputWrapperElement == null) {
- throw new InvalidWSDLException("The element is not declared in a XML schema: " + elementName
- .toString());
- }
- if (inputWrapperElement.isNillable()) {
- // The wrapper element cannot be nilable
- return null;
- }
- inputElements = getChildElements(inputWrapperElement);
- return inputElements;
- } else {
- return null;
- }
- }
-
- /**
- * Return a list of child XSD elements under the wrapped response
- * element
- *
- * @return a list of child XSD elements or null if if the response
- * element is not wrapped
- */
- public List<XmlSchemaElement> getOutputChildElements() throws InvalidWSDLException {
- if (outputElements != null) {
- return outputElements;
- }
- Output output = operation.getOutput();
- if (output != null) {
- Message outputMsg = output.getMessage();
- Collection parts = outputMsg.getParts().values();
- if (parts.size() != 1) {
- return null;
- }
- Part part = (Part)parts.iterator().next();
- QName elementName = part.getElementName();
- if (elementName == null) {
- throw new InvalidWSDLException("The element is not declared in the XML schema: " + part.getName());
- }
- outputWrapperElement = WSDLOperationIntrospectorImpl.this.getElement(elementName);
- if (outputWrapperElement == null) {
- return null;
- }
- if (outputWrapperElement.isNillable()) {
- // The wrapper element cannot be nilable
- return null;
- }
- outputElements = getChildElements(outputWrapperElement);
- // FIXME: Do we support multiple child elements for the response?
- return outputElements;
- } else {
- return null;
- }
- }
-
- /**
- * @return the inputWrapperElement
- */
- public XmlSchemaElement getInputWrapperElement() {
- return inputWrapperElement;
- }
-
- /**
- * @return the outputWrapperElement
- */
- public XmlSchemaElement getOutputWrapperElement() {
- return outputWrapperElement;
- }
-
- /*
- public DataType<List<DataType<XMLType>>> getUnwrappedInputType() throws InvalidWSDLException {
- if (unwrappedInputType == null) {
- List<DataType<XMLType>> childTypes = new ArrayList<DataType<XMLType>>();
- for (XmlSchemaElement element : getInputChildElements()) {
- DataType<XMLType> type =
- new DataType<XMLType>(dataBinding, Object.class, new XMLType(getElementInfo(element)));
- // type.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
- childTypes.add(type);
- }
- unwrappedInputType =
- new DataType<List<DataType<XMLType>>>("idl:unwrapped.input", Object[].class, childTypes);
- }
- return unwrappedInputType;
- }
-
- public DataType<XMLType> getUnwrappedOutputType() throws InvalidServiceContractException {
- if (unwrappedOutputType == null) {
- List<XmlSchemaElement> elements = getOutputChildElements();
- if (elements != null && elements.size() > 0) {
- if (elements.size() > 1) {
- // We don't support output with multiple parts
- throw new NotSupportedWSDLException("Multi-part output is not supported");
- }
- XmlSchemaElement element = elements.get(0);
- unwrappedOutputType =
- new DataType<XMLType>(dataBinding, Object.class, new XMLType(getElementInfo(element)));
- // unwrappedOutputType.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
- }
- }
- return unwrappedOutputType;
- }
- */
-
- public WrapperInfo getWrapperInfo() throws InvalidWSDLException {
- if (wrapperInfo == null) {
- ElementInfo in = getElementInfo(getInputWrapperElement());
- ElementInfo out = getElementInfo(getOutputWrapperElement());
- List<ElementInfo> inChildren = new ArrayList<ElementInfo>();
- if (in != null) {
- for (XmlSchemaElement e : getInputChildElements()) {
- inChildren.add(getElementInfo(e));
- }
- }
- List<ElementInfo> outChildren = new ArrayList<ElementInfo>();
- if (out != null) {
- for (XmlSchemaElement e : getOutputChildElements()) {
- outChildren.add(getElementInfo(e));
- }
- }
- wrapperInfo = new WrapperInfo(dataBinding, in, out, inChildren, outChildren);
- }
- return wrapperInfo;
- }
- }
-
- private static ElementInfo getElementInfo(XmlSchemaElement element) {
- if (element == null) {
- return null;
- }
- ElementInfo elementInfo = new ElementInfo(element.getQName(), getTypeInfo(element.getSchemaType()));
- elementInfo.setMany(element.getMaxOccurs() > 1);
- elementInfo.setNillable(element.isNillable());
- return elementInfo;
- }
-
- private static TypeInfo getTypeInfo(XmlSchemaType type) {
- if (type == null) {
- return null;
- }
- XmlSchemaType baseType = (XmlSchemaType)type.getBaseSchemaType();
- QName name = type.getQName();
- boolean simple = (type instanceof XmlSchemaSimpleType);
- if (baseType == null) {
- return new TypeInfo(name, simple, null);
- } else {
- return new TypeInfo(name, simple, getTypeInfo(baseType));
- }
- }
-
-}
diff --git a/java/sca/contrib/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory b/java/sca/contrib/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory
deleted file mode 100644
index c11d22d7b2..0000000000
--- a/java/sca/contrib/modules/interface-wsdl/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-org.apache.tuscany.sca.interfacedef.wsdl.DefaultWSDLFactory \ No newline at end of file
diff --git a/java/sca/contrib/modules/interface/LICENSE b/java/sca/contrib/modules/interface/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/contrib/modules/interface/LICENSE
+++ /dev/null
@@ -1,205 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
diff --git a/java/sca/contrib/modules/interface/META-INF/MANIFEST.MF b/java/sca/contrib/modules/interface/META-INF/MANIFEST.MF
deleted file mode 100644
index a5f7a82cf3..0000000000
--- a/java/sca/contrib/modules/interface/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.interfacedef.util;uses:="javax.
- xml.transform,org.apache.tuscany.sca.interfacedef.impl,org.apache.tus
- cany.sca.interfacedef,javax.xml.datatype,javax.xml.namespace";version
- ="2.0",org.apache.tuscany.sca.interfacedef.impl;uses:="org.apache.tus
- cany.sca.interfacedef.util,org.apache.tuscany.sca.policy,org.apache.t
- uscany.sca.interfacedef";version="2.0",org.apache.tuscany.sca.interfa
- cedef;uses:="org.apache.tuscany.sca.interfacedef.util,org.apache.tusc
- any.sca.policy";version="2.0"
-Tool: Bnd-0.0.255
-Bundle-Name: Apache Tuscany SCA Interface Model
-Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0
-Bnd-LastModified: 1225397086703
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Interface Model
-Import-Package: javax.xml.datatype,javax.xml.namespace,javax.xml.trans
- form,org.apache.tuscany.sca.interfacedef;version="2.0",org.apache.tus
- cany.sca.interfacedef.impl;version="2.0",org.apache.tuscany.sca.inter
- facedef.util;version="2.0",org.apache.tuscany.sca.policy;version="2.0
- ",org.apache.tuscany.sca.core;ve
- rsion="2.0";resolution:=optional
-Bundle-SymbolicName: org.apache.tuscany.sca.interface
-Bundle-DocURL: http://www.apache.org/
-
diff --git a/java/sca/contrib/modules/interface/NOTICE b/java/sca/contrib/modules/interface/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/contrib/modules/interface/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/contrib/modules/interface/pom.xml b/java/sca/contrib/modules/interface/pom.xml
deleted file mode 100644
index 2a1827efa0..0000000000
--- a/java/sca/contrib/modules/interface/pom.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-modules</artifactId>
- <version>2.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-interface</artifactId>
- <name>Apache Tuscany SCA Interface Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-policy</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.interface</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.interfacedef*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-</project>
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/ConversationSequence.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/ConversationSequence.java
deleted file mode 100644
index 247a432330..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/ConversationSequence.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef;
-
-/**
- * Enum of the Conversation Sequence values.
- *
- * @version $Rev$ $Date$
- */
-public enum ConversationSequence {
- CONVERSATION_NONE, CONVERSATION_START, CONVERSATION_CONTINUE, CONVERSATION_END
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
deleted file mode 100644
index 1f5620c0b9..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.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 semantially 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$
- */
-public interface DataType<L> 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:
- * <ul>
- * <li>a Class identifies a Java type by name and
- * ClassLoader; this includes Java Classes as they are specializations of
- * Type</li>
- * <li>a XMLType identifies an XML type by local name and
- * namespace</li>
- * </ul>
- *
- * @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> T getMetaData(Class<T> 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
- */
- <T> void setMetaData(Class<T> type, T metaData);
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
deleted file mode 100644
index 70f6d5b403..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/FaultExceptionMapper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef;
-
-/**
- * This interface represents the mapping between WSDL faults and Java exceptions
- *
- * @version $Rev$ $Date$
- */
-@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<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<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/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java
deleted file mode 100644
index 179dc1755e..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/IncompatibleInterfaceContractException.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.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/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java
deleted file mode 100644
index f9de645a6e..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
-
-/**
- * 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$
- */
-public interface Interface extends Cloneable, PolicySetAttachPoint {
-
- /**
- * 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);
-
-
- // FIXME: [rfeng] We need to re-consider the conversational as an intent
- /**
- * Test if the interface is conversational
- * @return
- */
- boolean isConversational();
-
- /**
- * Set whether the interface is conversational
- * @param conversational
- */
- void setConversational(boolean conversational);
-
- /**
- * Returns the operations defined on this interface.
- *
- * @return the operations defined on this interface
- */
- List<Operation> 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);
-
- /**
- * Returns true if the Interface is dynamic.
- *
- * @return true if the Interface is dynamic.
- */
- boolean isDynamic();
-
- /**
- * Implementations must support cloning.
- */
- Object clone() throws CloneNotSupportedException;
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java
deleted file mode 100644
index 568a6c595c..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContract.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-
-/**
- * Interface contracts define one or more business functions. These business
- * functions are provided by services and are used by references.
- *
- * @version $Rev$ $Date$
- */
-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;
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java
deleted file mode 100644
index 5601b09660..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InterfaceContractMapper.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef;
-
-/**
- * The InterfaceContractMapper is responsible to match interfaces
- *
- * @version $Rev$ $Date$
- */
-public interface InterfaceContractMapper {
- /**
- * Check the compatibility of the source and the target interface contracts.
- * <p>
- * A wire may only connect a source to a target if the target implements an
- * interface that is compatible with the interface required by the source.
- * The source and the target are compatible if: <p/>
- * <ol>
- * <li>the source interface and the target interface MUST either both be
- * remotable or they are both local
- * <li>the methods on the target interface MUST be the same as or be a
- * superset of the methods in the interface specified on the source
- * <li>compatibility for the individual method is defined as compatibility
- * of the signature, that is method name, input types, and output types MUST
- * BE the same.
- * <li>the order of the input and output types also MUST BE the same.
- * <li>the set of Faults and Exceptions expected by the source MUST BE the
- * same or be a superset of those specified by the service.
- * <li>other specified attributes of the two interfaces MUST match,
- * including Scope and Callback interface
- * </ol>
- * <p/>
- * <p>
- * Please note this test is not symmetric: the success of isCompatible(A, B)
- * does NOT imply isCompatible(B, A)
- *
- * @param source The source interface contract
- * @param target The target interface contract
- * @return true if the source contract can be supported by the target
- * contract
- */
- boolean isCompatible(InterfaceContract source, InterfaceContract target);
-
- /**
- * @param source
- * @param target
- * @param ignoreCallback
- * @param silent
- * @return
- * @throws IncompatibleInterfaceContractException
- */
- boolean checkCompatibility(InterfaceContract source,
- InterfaceContract target,
- boolean ignoreCallback,
- boolean silent) throws IncompatibleInterfaceContractException;
-
- /**
- * Test if the source data type is compatible with the target data type. The
- * compatibility is defined as follows.
- * <ul>
- * <li>source's logical type is either the same or subtype of the target's
- * logical type
- * </ul>
- * 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
- * @return
- */
- boolean isCompatible(DataType source, DataType target, boolean remotable);
-
- /**
- * Check if source operation is compatible with the target operation
- *
- * @param source The source operation
- * @param target The target operation
- * @return true if the source operation is compatible with the target
- * operation
- */
- boolean isCompatible(Operation source, Operation target, boolean remotable);
-
- /**
- * @param source
- * @param target
- * @return
- */
- boolean isCompatible(Interface source, Interface target);
-
- /**
- * Map the source operation to a compatible operation in the target
- * interface
- *
- * @param target The target interface
- * @param source The source operation
- * @return A compatible operation
- */
- Operation map(Interface target, Operation source);
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidCallbackException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidCallbackException.java
deleted file mode 100644
index f952a86478..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidCallbackException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-
-/**
- * Denotes an illegal callback interface
- *
- * @version $Rev$ $Date$
- */
-
-public class InvalidCallbackException extends InvalidInterfaceException {
- private static final long serialVersionUID = 2727755895702116397L;
-
- public InvalidCallbackException(String message) {
- super(message);
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidInterfaceException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidInterfaceException.java
deleted file mode 100644
index 2a273c9a26..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidInterfaceException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class InvalidInterfaceException extends Exception {
-
- public InvalidInterfaceException() {
- super();
- }
-
- public InvalidInterfaceException(String message) {
- super(message);
- }
-
- public InvalidInterfaceException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidInterfaceException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidOperationException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidOperationException.java
deleted file mode 100644
index b19805c5b1..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/InvalidOperationException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-import java.lang.reflect.Method;
-
-/**
- * Denotes an invalid conversational interface definition
- *
- * @version $Rev$ $Date$
- */
-public class InvalidOperationException extends InvalidInterfaceException {
-
- private static final long serialVersionUID = -1797615361821517091L;
- private final Method operation;
-
- public InvalidOperationException(String message, Method operation) {
- super(message);
- this.operation = operation;
- }
-
- public Method getOperation() {
- return operation;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
deleted file mode 100644
index 4676e35f80..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
-
-/**
- * Represents an operation on a service interface.
- *
- * @version $Rev$ $Date$
- */
-public interface Operation extends Cloneable, PolicySetAttachPoint {
- /**
- * 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 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);
-
- /**
- * Get the data type that represents the input of this operation. The logic
- * type is a list of data types and each element represents a parameter
- *
- * @return the inputType
- */
- DataType<List<DataType>> getInputType();
-
- /**
- * @param inputType
- */
- void setInputType(DataType<List<DataType>> inputType);
-
- /**
- * Get the data type for the output
- *
- * @return the outputType
- */
- DataType getOutputType();
-
- /**
- * @param outputType
- */
- void setOutputType(DataType outputType);
-
- /**
- * Get a list of data types to represent the faults/exceptions
- *
- * @return the faultTypes
- */
- List<DataType> getFaultTypes();
-
- /**
- * @param faultTypes
- */
- void setFaultTypes(List<DataType> faultTypes);
-
- /**
- * Get the owning interface
- * @return
- */
- Interface getInterface();
-
- /**
- * Set the owning interface
- * @param interfaze
- */
- void setInterface(Interface interfaze);
-
- /**
- * Get the sequence of the conversation
- * @return
- */
- ConversationSequence getConversationSequence();
-
- /**
- * Set the sequence of conversation for the operation
- * @param sequence
- */
- void setConversationSequence(ConversationSequence sequence);
-
- /**
- * Indicate if the operation is non-blocking
- * @return
- */
- boolean isNonBlocking();
-
- /**
- * Set the operation to be non-blocking
- */
- void setNonBlocking(boolean nonBlocking);
-
- /**
- * @return the wrapperInfo
- */
- WrapperInfo getWrapper();
-
- /**
- * @param wrapperInfo the wrapperInfo to set
- */
- void setWrapper(WrapperInfo wrapperInfo);
-
- /**
- * @return the wrapperStyle
- */
- boolean isWrapperStyle();
-
- /**
- * @param wrapperStyle the wrapperStyle to set
- */
- void setWrapperStyle(boolean wrapperStyle);
-
- /**
- * @deprecated This should be the WrapperInfo.getDataBinding()
- * Get the databinding for the operation
- * @return
- */
- @Deprecated
- String getDataBinding();
-
- /**
- * @deprecated This should be the WrapperInfo.setDataBinding()
- * Set the databinding for the operation
- * @param dataBinding
- */
- @Deprecated
- void setDataBinding(String dataBinding);
-
- /**
- * Returns true if the operation is dynamic.
- *
- * @return true if the operation is dynamic otherwise false
- */
- boolean isDynamic();
-
- /**
- * Set if the operation is dynamic
- * @param b
- */
- void setDynamic(boolean b);
-
- /**
- * Get the synthesized fault beans for this operation
- *
- * @return the fault beans
- */
- Map<QName, List<DataType<XMLType>>> getFaultBeans();
-
- /**
- * Set the synthesized fault beans for this operation
- * @param faultBeans
- */
- void setFaultBeans(Map<QName, List<DataType<XMLType>>> faultBeans);
-
- /**
- * Implementations must support cloning.
- */
- Object clone() throws CloneNotSupportedException;
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/OverloadedOperationException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/OverloadedOperationException.java
deleted file mode 100644
index 6773b29088..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/OverloadedOperationException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef;
-
-import java.lang.reflect.Method;
-
-/**
- * Exception thrown to indicate that a service contract specification contains
- * an overloaded method.
- *
- * @version $Rev$ $Date$
- */
-public class OverloadedOperationException extends InvalidInterfaceException {
- private static final long serialVersionUID = -4658711318608885638L;
- private final Method operation;
-
- public OverloadedOperationException(Method operation) {
- super(operation == null ?
- null : "Cannot overload operation " + operation.getName()
- + " on " + operation.getDeclaringClass().getName()
- + " as it is a @Remotable interface");
- this.operation = operation;
- }
-
- public Method getOperation() {
- return operation;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java
deleted file mode 100644
index c1c8400b71..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.impl;
-
-import java.lang.reflect.Type;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-
-/**
- * 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 semantially 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$
- */
-public class DataTypeImpl<L> implements DataType<L> {
- private String dataBinding;
- private Class<?> physical;
- private Type genericType;
- private L logical;
- private Map<Class<?>, Object> metaDataMap;
-
- /**
- * Construct a data type specifying the physical and logical types.
- *
- * @param physical the physical class used by the runtime
- * @param logical the logical type
- * @see #getLogical()
- */
- public DataTypeImpl(Class<?> physical, L logical) {
- this(null, physical, physical, logical);
- }
-
- /**
- * @param dataBinding
- * @param physical
- * @param logical
- */
- public DataTypeImpl(String dataBinding, Class<?> physical, L logical) {
- this(dataBinding, physical, physical, logical);
- }
-
- /**
- * @param dataBinding
- * @param physical
- * @param genericType
- * @param logical
- */
- public DataTypeImpl(String dataBinding, Class<?> physical, Type genericType, L logical) {
- super();
- this.dataBinding = dataBinding;
- this.physical = physical;
- this.genericType = genericType;
- this.logical = logical;
- }
-
- /**
- * Returns the physical type used by the runtime.
- *
- * @return the physical type used by the runtime
- */
- public Class<?> getPhysical() {
- return physical;
- }
-
- /**
- * @param physical the physical to set
- */
- public void setPhysical(Class<?> physical) {
- this.physical = physical;
- }
-
- /**
- * Get the java generic type
- * @return The java generic type
- */
- public Type getGenericType() {
- return genericType;
- }
-
- /**
- * Set the java generic type
- * @param genericType
- */
- public void setGenericType(Type genericType) {
- this.genericType = genericType;
- }
-
- /**
- * Returns the logical identifier used by the assembly. The type of this
- * value identifies the logical type system in use. Known values are:
- * <ul>
- * <li>a java.lang.reflect.Type identifies a Java type by name and
- * ClassLoader; this includes Java Classes as they are specializations of
- * Type</li>
- * <li>a javax.xml.namespace.QName identifies an XML type by local name and
- * namespace</li>
- * </ul>
- *
- * @return the logical type name
- */
- public L getLogical() {
- return logical;
- }
-
- /**
- * @param logical the logical to set
- */
- public void setLogical(L logical) {
- this.logical = logical;
- }
-
- public String getDataBinding() {
- return dataBinding;
- }
-
- /**
- * @param dataBinding the dataBinding to set
- */
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append(physical).append(" ").append(dataBinding).append(" ").append(logical);
- return sb.toString();
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Object clone() throws CloneNotSupportedException {
- DataTypeImpl copy = (DataTypeImpl)super.clone();
- return copy;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((dataBinding == null) ? 0 : dataBinding.hashCode());
- result = prime * result + ((genericType == null) ? 0 : genericType.hashCode());
- result = prime * result + ((logical == null) ? 0 : logical.hashCode());
- result = prime * result + ((physical == null) ? 0 : physical.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;
- final DataTypeImpl other = (DataTypeImpl)obj;
- if (dataBinding == null) {
- if (other.dataBinding != null)
- return false;
- } else if (!dataBinding.equals(other.dataBinding))
- return false;
- if (genericType == null) {
- if (other.genericType != null)
- return false;
- } else if (!genericType.equals(other.genericType))
- return false;
- if (logical == null) {
- if (other.logical != null)
- return false;
- } else if (!logical.equals(other.logical))
- return false;
- if (physical == null) {
- if (other.physical != null)
- return false;
- } else if (!physical.equals(other.physical))
- return false;
- return true;
- }
-
- public <T> T getMetaData(Class<T> type) {
- return metaDataMap == null ? null : type.cast(metaDataMap.get(type));
- }
-
- public <T> void setMetaData(Class<T> type, T metaData) {
- if (metaDataMap == null) {
- metaDataMap = new ConcurrentHashMap<Class<?>, Object>();
- }
- metaDataMap.put(type, metaData);
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractImpl.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractImpl.java
deleted file mode 100644
index 15581b5e04..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractImpl.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.impl;
-
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-
-/**
- * Represents an interface contract. InterfaceContractImpl
- *
- * @version $Rev$ $Date$
- */
-public abstract class InterfaceContractImpl implements InterfaceContract {
- private Interface callInterface;
- private Interface callbackInterface;
-
- public Interface getCallbackInterface() {
- return callbackInterface;
- }
-
- public Interface getInterface() {
- return callInterface;
- }
-
- public void setCallbackInterface(Interface callbackInterface) {
- this.callbackInterface = callbackInterface;
- }
-
- public void setInterface(Interface callInterface) {
- this.callInterface = callInterface;
- }
-
- public InterfaceContract makeUnidirectional(boolean isCallback) {
- if (!isCallback && callbackInterface == null)
- return this; // already a unidirectional forward interface contract
-
- if (isCallback && callInterface == null)
- return this; // already a unidirectional callback interface contract
-
- // contract is bidirectional, so create a new unidirectional contract
- try {
- InterfaceContract newContract = clone();
- if (!isCallback) {
- newContract.setCallbackInterface(null); // create unidirectional forward interface contract
- } else {
- newContract.setInterface(null); // create unidirectional callback interface contract
- }
- return newContract;
- } catch (CloneNotSupportedException e) {
- // will not happen
- return null;
- }
- }
-
- @Override
- public InterfaceContractImpl clone() throws CloneNotSupportedException {
- InterfaceContractImpl copy = (InterfaceContractImpl)super.clone();
- if (this.callbackInterface != null) {
- copy.callbackInterface = (Interface)this.callbackInterface.clone();
- }
- if (this.callInterface != null) {
- copy.callInterface = (Interface)this.callInterface.clone();
- }
- return copy;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((callInterface == null) ? 0 : callInterface.hashCode());
- result = prime * result + ((callbackInterface == null) ? 0 : callbackInterface.hashCode());
- return result;
- }
-
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final InterfaceContractImpl other = (InterfaceContractImpl)obj;
- if (callInterface == null) {
- if (other.callInterface != null) {
- return false;
- }
- } else if (!callInterface.equals(other.callInterface)) {
- return false;
- }
- if (callbackInterface == null) {
- if (other.callbackInterface != null) {
- return false;
- }
- } else if (!callbackInterface.equals(other.callbackInterface)) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
deleted file mode 100644
index 9e7d6882f7..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.impl;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * @version $Rev$ $Date$
- */
-public class InterfaceContractMapperImpl implements InterfaceContractMapper {
-
- public boolean isCompatible(DataType source, DataType target, boolean remotable) {
- if (source == target) {
- return true;
- }
- if (!remotable) {
- if (source == null || target == null) {
- return false;
- }
- // For local case
- return target.getPhysical().isAssignableFrom(source.getPhysical());
- } else {
- // FIXME: How to test if two remotable data type is compatible?
- // return target.getLogical().equals(source.getLogical());
- return true;
- }
-
- }
-
- public boolean isCompatible(Operation source, Operation target, boolean remotable) {
- if (source == target) {
- return true;
- }
-
- if (source.isDynamic() || target.isDynamic()) {
- return true;
- }
-
- // Check name
- if (!source.getName().equals(target.getName())) {
- return false;
- }
-
- if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
- return false;
- }
-
- // if (source.getInterface().isRemotable()) {
- // return true;
- // }
-
- // FIXME: We need to deal with wrapped<-->unwrapped conversion
-
- // Check output type
- DataType sourceOutputType = source.getOutputType();
- DataType targetOutputType = target.getOutputType();
-
- // Note the target output type is now the source for checking
- // compatibility
- if (!isCompatible(targetOutputType, sourceOutputType, remotable)) {
- return false;
- }
-
- boolean checkSourceWrapper = true;
- List<DataType> sourceInputType = source.getInputType().getLogical();
- if (source.isWrapperStyle() && source.getWrapper() != null) {
- sourceInputType = source.getWrapper().getUnwrappedInputType().getLogical();
- checkSourceWrapper = false;
- }
- boolean checkTargetWrapper = true;
- List<DataType> targetInputType = target.getInputType().getLogical();
- if (target.isWrapperStyle() && target.getWrapper() != null) {
- targetInputType = target.getWrapper().getUnwrappedInputType().getLogical();
- checkTargetWrapper = false;
- }
-
- if (checkSourceWrapper != checkTargetWrapper) {
- return true;
- }
- if (sourceInputType.size() != targetInputType.size()) {
- return false;
- }
-
- int size = sourceInputType.size();
- for (int i = 0; i < size; i++) {
- if (!isCompatible(sourceInputType.get(i), targetInputType.get(i), remotable)) {
- return false;
- }
- }
-
- // Check fault types
- for (DataType targetFaultType : target.getFaultTypes()) {
- // Source fault types must be the same or superset of target fault
- // types
- boolean found = true;
- for (DataType sourceFaultType : source.getFaultTypes()) {
- found = false;
- if (isCompatible(targetFaultType, sourceFaultType, remotable)) {
- // Target fault type can be covered by the source fault type
- found = true;
- break;
- }
- }
- if (!found) {
- return false;
- }
- }
-
- return true;
- }
-
- // FIXME: How to improve the performance for the lookup
- private Operation getOperation(List<Operation> operations, String name) {
- for (Operation op : operations) {
- if (op.getName().equals(name)) {
- return op;
- }
- }
- return null;
- }
-
- public boolean checkCompatibility(InterfaceContract source,
- InterfaceContract target,
- boolean ignoreCallback,
- boolean silent) throws IncompatibleInterfaceContractException {
- if (source == target) {
- // Shortcut for performance
- return true;
- }
-
- if (source.getInterface().isDynamic() || target.getInterface().isDynamic()) {
- return true;
- }
-
- if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Remotable settings do not match", source, target);
- } else {
- return false;
- }
- }
- if (source.getInterface().isConversational() != target.getInterface().isConversational()) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Interaction scopes do not match", source, target);
- } else {
- return false;
- }
- }
-
- for (Operation operation : source.getInterface().getOperations()) {
- Operation targetOperation = map(target.getInterface(), operation);
- if (targetOperation == null) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Operation not found on target", source, target);
- } else {
- return false;
- }
- }
- if (!source.getInterface().isRemotable()) {
- // FIXME: for remotable operation, only compare name for now
- if (!isCompatible(operation, targetOperation, false)) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Target operations are not compatible",
- source, target);
- } else {
- return false;
- }
- }
- }
- }
-
- if (ignoreCallback) {
- return true;
- }
-
- if (source.getCallbackInterface() == null && target.getCallbackInterface() == null) {
- return true;
- }
- if (source.getCallbackInterface() == null || target.getCallbackInterface() == null) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Callback interface doesn't match", source, target);
- } else {
- return false;
- }
- }
-
- for (Operation operation : source.getCallbackInterface().getOperations()) {
- Operation targetOperation =
- getOperation(target.getCallbackInterface().getOperations(), operation.getName());
- if (targetOperation == null) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Callback operation not found on target", source,
- target, null, targetOperation);
- } else {
- return false;
- }
- }
- if (!source.getCallbackInterface().isRemotable()) {
- // FIXME: for remotable operation, only compare name for now
- if (!operation.equals(targetOperation)) {
- if (!silent) {
- throw new IncompatibleInterfaceContractException("Target callback operation is not compatible",
- source, target, operation, targetOperation);
- } else {
- return false;
- }
- }
- }
- }
- return true;
- }
-
- public boolean isCompatible(Interface source, Interface target) {
- if (source == target) {
- // Shortcut for performance
- return true;
- }
- if (source == null || target == null) {
- return false;
- }
-
- if (source.isDynamic() || target.isDynamic()) {
- return true;
- }
-
- if (source.isRemotable() != target.isRemotable()) {
- return false;
- }
- if (source.isConversational() != target.isConversational()) {
- return false;
- }
-
- for (Operation operation : source.getOperations()) {
- Operation targetOperation = getOperation(target.getOperations(), operation.getName());
- if (targetOperation == null) {
- return false;
- }
- if (!isCompatible(operation, targetOperation, source.isRemotable())) {
- return false;
- }
- }
- return true;
- }
-
- public boolean isCompatible(InterfaceContract source, InterfaceContract target) {
- try {
- return checkCompatibility(source, target, false, false);
- } catch (IncompatibleInterfaceContractException e) {
- return false;
- }
- }
-
- /**
- * @see org.apache.tuscany.sca.interfacedef.InterfaceContractMapper#map(org.apache.tuscany.sca.interfacedef.Interface,
- * org.apache.tuscany.sca.interfacedef.Operation)
- */
- public Operation map(Interface target, Operation source) {
- // TODO: How to handle the case that source operation is dynamic?
- if (target == null || target.isDynamic()) {
- return source;
- } else if (target.isRemotable()) {
- for (Operation op : target.getOperations()) {
- if (op.getName().equals(source.getName())) {
- return op;
- }
- }
- return null;
- } else {
- for (Operation op : target.getOperations()) {
- if (isCompatible(source, op, target.isRemotable())) {
- return op;
- }
- }
- return null;
- }
-
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
deleted file mode 100644
index e2a524c5e0..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Represents a service interface.
- *
- * @version $Rev$ $Date$
- */
-public class InterfaceImpl implements Interface {
-
- private boolean remotable;
- private boolean conversational;
- private OperationList operations = new OperationList();
- private boolean unresolved;
-
- private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>();
- private IntentAttachPointType type;
- private List<PolicySet> policySets = new ArrayList<PolicySet>();
- private List<Intent> requiredIntents = new ArrayList<Intent>();
-
-
- public boolean isRemotable() {
- return remotable;
- }
-
- public void setRemotable(boolean local) {
- this.remotable = local;
- }
-
- public List<Operation> getOperations() {
- return operations;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean undefined) {
- this.unresolved = undefined;
- }
-
- /**
- * @return the conversational
- */
- public boolean isConversational() {
- return conversational;
- }
-
- /**
- * @param conversational the conversational to set
- */
- public void setConversational(boolean conversational) {
- this.conversational = conversational;
- }
-
- private class OperationList extends ArrayList<Operation> {
- private static final long serialVersionUID = -903469106307606099L;
-
- @Override
- public Operation set(int index, Operation element) {
- element.setInterface(InterfaceImpl.this);
- return super.set(index, element);
- }
-
- @Override
- public void add(int index, Operation element) {
- element.setInterface(InterfaceImpl.this);
- super.add(index, element);
- }
-
- @Override
- public boolean add(Operation o) {
- o.setInterface(InterfaceImpl.this);
- return super.add(o);
- }
-
- @Override
- public boolean addAll(Collection<? extends Operation> c) {
- for (Operation op : c) {
- op.setInterface(InterfaceImpl.this);
- }
- return super.addAll(c);
- }
-
- @Override
- public boolean addAll(int index, Collection<? extends Operation> c) {
- for (Operation op : c) {
- op.setInterface(InterfaceImpl.this);
- }
- return super.addAll(index, c);
- }
-
- }
-
- @Deprecated
- public void setDefaultDataBinding(String dataBinding) {
- for (Operation op : getOperations()) {
- if (op.getDataBinding() == null) {
- op.setDataBinding(dataBinding);
- DataType<List<DataType>> inputType = op.getInputType();
- if (inputType != null) {
- for (DataType d : inputType.getLogical()) {
- if (d.getDataBinding() == null) {
- d.setDataBinding(dataBinding);
- }
- }
- }
- DataType outputType = op.getOutputType();
- if (outputType != null && outputType.getDataBinding() == null) {
- outputType.setDataBinding(dataBinding);
- }
- List<DataType> faultTypes = op.getFaultTypes();
- if (faultTypes != null) {
- for (DataType d : faultTypes) {
- if (d.getDataBinding() == null) {
- d.setDataBinding(dataBinding);
- }
- DataType ft = (DataType) d.getLogical();
- if (ft.getDataBinding() == null) {
- ft.setDataBinding(dataBinding);
- }
-
- }
- }
- if (op.isWrapperStyle()) {
- WrapperInfo wrapper = op.getWrapper();
- if (wrapper != null) {
- DataType<List<DataType>> unwrappedInputType = wrapper.getUnwrappedInputType();
- if (unwrappedInputType != null) {
- for (DataType d : unwrappedInputType.getLogical()) {
- if (d.getDataBinding() == null) {
- d.setDataBinding(dataBinding);
- }
- }
- }
- DataType unwrappedOutputType = wrapper.getUnwrappedOutputType();
- if (unwrappedOutputType != null && unwrappedOutputType.getDataBinding() == null) {
- unwrappedOutputType.setDataBinding(dataBinding);
- }
- }
- }
- }
- }
- }
-
- private void setDataBinding(DataType dataType, String dataBinding) {
- if ("java:array".equals(dataType.getDataBinding())) {
- setDataBinding((DataType)dataType.getLogical(), dataBinding);
- } else {
- dataType.setDataBinding(dataBinding);
- }
- }
-
- public void resetDataBinding(String dataBinding) {
- for (Operation op : getOperations()) {
- op.setDataBinding(dataBinding);
- DataType<List<DataType>> inputType = op.getInputType();
- if (inputType != null) {
- for (DataType d : inputType.getLogical()) {
- setDataBinding(d, dataBinding);
- }
- }
- DataType outputType = op.getOutputType();
- if (outputType != null) {
- setDataBinding(outputType, dataBinding);
- }
- List<DataType> faultTypes = op.getFaultTypes();
- if (faultTypes != null) {
- for (DataType d : faultTypes) {
- setDataBinding(d, dataBinding);
- setDataBinding((DataType) d.getLogical(), dataBinding);
- }
- }
- if (op.isWrapperStyle()) {
- WrapperInfo wrapper = op.getWrapper();
- if (wrapper != null) {
- DataType<List<DataType>> unwrappedInputType = wrapper.getUnwrappedInputType();
- if (unwrappedInputType != null) {
- for (DataType d : unwrappedInputType.getLogical()) {
- setDataBinding(d, dataBinding);
- }
- }
- DataType unwrappedOutputType = wrapper.getUnwrappedOutputType();
- if (unwrappedOutputType != null) {
- setDataBinding(unwrappedOutputType, dataBinding);
- }
- }
- }
- }
- }
-
- public boolean isDynamic() {
- return false;
- }
-
- public List<PolicySet> getApplicablePolicySets() {
- return applicablePolicySets;
- }
-
- public List<PolicySet> getPolicySets() {
- return policySets;
- }
-
- public List<Intent> getRequiredIntents() {
- return requiredIntents;
- }
-
- public IntentAttachPointType getType() {
- return type;
- }
-
- public void setType(IntentAttachPointType type) {
- this.type = type;
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- InterfaceImpl copy = (InterfaceImpl)super.clone();
- copy.operations = new OperationList();
- for (Operation operation : this.operations) {
- Operation clonedOperation = (Operation)operation.clone();
- copy.operations.add(clonedOperation);
- }
- return copy;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (conversational ? 1231 : 1237);
- result = prime * result + ((operations == null) ? 0 : operations.hashCode());
- result = prime * result + (remotable ? 1231 : 1237);
- result = prime * result + (unresolved ? 1231 : 1237);
- return result;
- }
-
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final InterfaceImpl other = (InterfaceImpl)obj;
- if (conversational != other.conversational)
- return false;
- if (operations == null) {
- if (other.operations != null)
- return false;
- } else if (!operations.equals(other.operations))
- return false;
- if (remotable != other.remotable)
- return false;
- if (unresolved != other.unresolved)
- return false;
- return true;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
deleted file mode 100644
index 00a5dc3065..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.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.interfacedef.ConversationSequence;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Represents an operation on a service interface.
- *
- * @version $Rev$ $Date$
- */
-public class OperationImpl implements Operation {
-
- private String name;
- private boolean unresolved;
- private DataType outputType;
- private DataType<List<DataType>> inputType;
- private List<DataType> faultTypes;
- private Interface interfaze;
- private ConversationSequence conversationSequence = ConversationSequence.CONVERSATION_NONE;
- private boolean nonBlocking;
- private boolean wrapperStyle;
- private WrapperInfo wrapper;
- private boolean dynamic;
- private Map<QName, List<DataType<XMLType>>> faultBeans;
-
- private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>();
- private List<PolicySet> policySets = new ArrayList<PolicySet>();
- private List<Intent> requiredIntents = new ArrayList<Intent>();
- private IntentAttachPointType type;
-
- /**
- * @param name
- */
- public OperationImpl() {
- inputType = new DataTypeImpl<List<DataType>>("idl:input", Object[].class, new ArrayList<DataType>());
- faultTypes = new ArrayList<DataType>();
- faultBeans = new HashMap<QName, List<DataType<XMLType>>>();
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean undefined) {
- this.unresolved = undefined;
- }
-
- /**
- * @return the faultTypes
- */
- public List<DataType> getFaultTypes() {
- return faultTypes;
- }
-
- /**
- * @param faultTypes the faultTypes to set
- */
- public void setFaultTypes(List<DataType> faultTypes) {
- this.faultTypes = faultTypes;
- }
-
- /**
- * @return the inputType
- */
- public DataType<List<DataType>> getInputType() {
- return inputType;
- }
-
- /**
- * @param inputType the inputType to set
- */
- public void setInputType(DataType<List<DataType>> inputType) {
- this.inputType = inputType;
- }
-
- /**
- * @return the outputType
- */
- public DataType getOutputType() {
- return outputType;
- }
-
- /**
- * @param outputType the outputType to set
- */
- public void setOutputType(DataType outputType) {
- this.outputType = outputType;
- }
-
- /**
- * @return the interface
- */
- public Interface getInterface() {
- return interfaze;
- }
-
- /**
- * @param interfaze the interface to set
- */
- public void setInterface(Interface interfaze) {
- this.interfaze = interfaze;
- }
-
- /**
- * @return the conversationSequence
- */
- public ConversationSequence getConversationSequence() {
- return conversationSequence;
- }
-
- /**
- * @param conversationSequence the conversationSequence to set
- */
- public void setConversationSequence(ConversationSequence conversationSequence) {
- this.conversationSequence = conversationSequence;
- }
-
- /**
- * @return the nonBlocking
- */
- public boolean isNonBlocking() {
- return nonBlocking;
- }
-
- /**
- * @param nonBlocking the nonBlocking to set
- */
- public void setNonBlocking(boolean nonBlocking) {
- this.nonBlocking = nonBlocking;
- }
-
- @Override
- public int hashCode() {
- final int PRIME = 31;
- int result = 1;
- result = PRIME * result + ((conversationSequence == null) ? 0 : conversationSequence.hashCode());
- // result = PRIME * result + ((faultTypes == null) ? 0 :
- // faultTypes.hashCode());
- result = PRIME * result + ((inputType == null) ? 0 : inputType.hashCode());
- result = PRIME * result + ((name == null) ? 0 : name.hashCode());
- result = PRIME * result + (nonBlocking ? 1231 : 1237);
- result = PRIME * result + ((outputType == null) ? 0 : outputType.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;
- }
- final OperationImpl other = (OperationImpl)obj;
- if (conversationSequence == null) {
- if (other.conversationSequence != null) {
- return false;
- }
- } else if (!conversationSequence.equals(other.conversationSequence)) {
- return false;
- }
- /*
- * if (faultTypes == null) { if (other.faultTypes != null) { return
- * false; } } else if (!faultTypes.equals(other.faultTypes)) { return
- * false; }
- */
-
- if (inputType == null) {
- if (other.inputType != null) {
- return false;
- }
- } else if (!inputType.equals(other.inputType)) {
- return false;
- }
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (nonBlocking != other.nonBlocking) {
- return false;
- }
- if (outputType == null) {
- if (other.outputType != null) {
- return false;
- }
- } else if (!outputType.equals(other.outputType)) {
- return false;
- }
- return true;
- }
-
- /**
- * @return the wrapperInfo
- */
- public WrapperInfo getWrapper() {
- return wrapper;
- }
-
- /**
- * @param wrapperInfo the wrapperInfo to set
- */
- public void setWrapper(WrapperInfo wrapperInfo) {
- this.wrapper = wrapperInfo;
- }
-
- /**
- * @return the wrapperStyle
- */
- public boolean isWrapperStyle() {
- return wrapperStyle;
- }
-
- /**
- * @param wrapperStyle the wrapperStyle to set
- */
- public void setWrapperStyle(boolean wrapperStyle) {
- this.wrapperStyle = wrapperStyle;
- }
-
- public String getDataBinding() {
- return wrapper != null ? wrapper.getDataBinding() : null;
- }
-
- public void setDataBinding(String dataBinding) {
- if (wrapper != null) {
- wrapper.setDataBinding(dataBinding);
- }
- }
-
- public boolean isDynamic() {
- return dynamic;
- }
-
- public void setDynamic(boolean b) {
- this.dynamic = b;
- }
-
- public Map<QName, List<DataType<XMLType>>> getFaultBeans() {
- return faultBeans;
- }
-
- public void setFaultBeans(Map<QName, List<DataType<XMLType>>> faultBeans) {
- this.faultBeans = faultBeans;
- }
-
- @Override
- public OperationImpl clone() throws CloneNotSupportedException {
- OperationImpl copy = (OperationImpl) super.clone();
-
- final List<DataType> clonedFaultTypes = new ArrayList<DataType>(this.faultTypes.size());
- for (DataType t : this.faultTypes) {
- clonedFaultTypes.add((DataType) t.clone());
- }
- copy.faultTypes = clonedFaultTypes;
-
- List<DataType> clonedLogicalTypes = new ArrayList<DataType>();
- for (DataType t : inputType.getLogical()) {
- DataType type = (DataType) t.clone();
- clonedLogicalTypes.add(type);
- }
- DataType<List<DataType>> clonedInputType =
- new DataTypeImpl<List<DataType>>(inputType.getPhysical(), clonedLogicalTypes);
- clonedInputType.setDataBinding(inputType.getDataBinding());
- copy.inputType = clonedInputType;
-
- if (this.outputType != null) {
- copy.outputType = (DataType) this.outputType.clone();
- }
-
- return copy;
- }
-
- public List<PolicySet> getApplicablePolicySets() {
- return applicablePolicySets;
- }
-
- public List<PolicySet> getPolicySets() {
- return policySets;
- }
-
- public List<Intent> getRequiredIntents() {
- return requiredIntents;
- }
-
- public IntentAttachPointType getType() {
- return type;
- }
-
- public void setType(IntentAttachPointType type) {
- this.type = type;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/ElementInfo.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/ElementInfo.java
deleted file mode 100644
index 777fa567f1..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/ElementInfo.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import javax.xml.namespace.QName;
-
-/**
- * An abstraction of XML schema elements.
- *
- * @version $Rev$ $Date$
- */
-public class ElementInfo {
- private final QName name;
- private final TypeInfo type;
- private boolean many = false;
- private boolean nillable = false;
-
- /**
- * @param name
- * @param type
- */
- public ElementInfo(QName name, TypeInfo type) {
- super();
- this.name = name;
- this.type = type;
- }
-
- /**
- * @return the name
- */
- public QName getQName() {
- return name;
- }
-
- /**
- * @return the type
- */
- public TypeInfo getType() {
- return type;
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("Element: ").append(name).append(" ").append(type);
- return sb.toString();
- }
-
- public boolean isMany() {
- return many;
- }
-
- public void setMany(boolean many) {
- this.many = many;
- }
-
- public boolean isNillable() {
- return nillable;
- }
-
- public void setNillable(boolean nillable) {
- this.nillable = nillable;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((type == null) ? 0 : type.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;
- final ElementInfo other = (ElementInfo)obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- /*
- if (type == null) {
- if (other.type != null)
- return false;
- } else if (!type.equals(other.type))
- return false;
- */
- return true;
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java
deleted file mode 100644
index 844b0af509..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/FaultException.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import javax.xml.namespace.QName;
-
-/**
- * The generic java exception to wrap service faults
- *
- * @version $Rev$ $Date$
- */
-public class FaultException extends Exception {
- private static final long serialVersionUID = -8002583655240625792L;
- private transient Object faultInfo; // FIXME: How to serialize it?
- private QName faultName;
-
- /**
- * @param message
- * @param faultInfo
- */
- public FaultException(String message, Object faultInfo) {
- super(message);
- this.faultInfo = faultInfo;
- }
-
- /**
- * @param message
- * @param faultInfo
- * @param cause
- */
- public FaultException(String message, Object faultInfo, Throwable cause) {
- super(message, cause);
- this.faultInfo = faultInfo;
- }
-
- /**
- * @return the faultInfo
- */
- public Object getFaultInfo() {
- return faultInfo;
- }
-
- public QName getFaultName() {
- return faultName;
- }
-
- public void setFaultName(QName logical) {
- this.faultName = logical;
- }
-
- public boolean isMatchingType(Object type) {
- if (faultName == null) {
- return false;
- }
-
- if ((type instanceof QName) && faultName.equals(type)) {
- return true;
- }
- if (type instanceof XMLType && faultName.equals(((XMLType)type).getElementName())) {
- return true;
- }
- return false;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
deleted file mode 100644
index 54c0a3ec11..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-/**
- * Utility class that can be used to map XSD types to Java classes and Java classes to XSD types.
- *
- * @version $Rev$ $Date$
- */
-public final class JavaXMLMapper {
- public static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
- private static final Map<Class, QName> JAVA2XML = new HashMap<Class, QName>();
- private static final Map<String, Class> XML2JAVA = new HashMap<String, Class>();
-
- private JavaXMLMapper() {
- }
-
- static {
- JAVA2XML.put(boolean.class, getTypeName("boolean"));
- JAVA2XML.put(byte.class, getTypeName("byte"));
- JAVA2XML.put(short.class, getTypeName("short"));
- JAVA2XML.put(int.class, getTypeName("int"));
- JAVA2XML.put(long.class, getTypeName("long"));
- JAVA2XML.put(float.class, getTypeName("float"));
- JAVA2XML.put(double.class, getTypeName("double"));
- JAVA2XML.put(Boolean.class, getTypeName("boolean"));
- JAVA2XML.put(Byte.class, getTypeName("byte"));
- JAVA2XML.put(Short.class, getTypeName("short"));
- JAVA2XML.put(Integer.class, getTypeName("int"));
- JAVA2XML.put(Long.class, getTypeName("long"));
- JAVA2XML.put(Float.class, getTypeName("float"));
- JAVA2XML.put(Double.class, getTypeName("double"));
- JAVA2XML.put(java.lang.String.class, getTypeName("string"));
- JAVA2XML.put(java.math.BigInteger.class, getTypeName("integer"));
- JAVA2XML.put(java.math.BigDecimal.class, getTypeName("decimal"));
- JAVA2XML.put(java.util.Calendar.class, getTypeName("dateTime"));
- JAVA2XML.put(java.util.Date.class, getTypeName("dateTime"));
- JAVA2XML.put(javax.xml.namespace.QName.class, getTypeName("QName"));
- JAVA2XML.put(java.net.URI.class, getTypeName("string"));
- JAVA2XML.put(javax.xml.datatype.XMLGregorianCalendar.class, getTypeName("anySimpleType"));
- JAVA2XML.put(javax.xml.datatype.Duration.class, getTypeName("duration"));
- JAVA2XML.put(java.lang.Object.class, getTypeName("anyType"));
- JAVA2XML.put(java.awt.Image.class, getTypeName("base64Binary"));
- JAVA2XML.put(byte[].class, getTypeName("base64Binary"));
- // java2XSD.put(javax.activation.DataHandler.class, getTypeName("base64Binary"));
- JAVA2XML.put(javax.xml.transform.Source.class, getTypeName("base64Binary"));
- JAVA2XML.put(java.util.UUID.class, getTypeName("string"));
- }
-
- static {
- XML2JAVA.put("string", java.lang.String.class);
- XML2JAVA.put("integer", java.math.BigInteger.class);
- XML2JAVA.put("int", int.class);
- XML2JAVA.put("long", long.class);
- XML2JAVA.put("short", short.class);
- XML2JAVA.put("decimal", java.math.BigDecimal.class);
- XML2JAVA.put("float", float.class);
- XML2JAVA.put("double", double.class);
- XML2JAVA.put("boolean", boolean.class);
- XML2JAVA.put("byte", byte.class);
- XML2JAVA.put("QName", javax.xml.namespace.QName.class);
- XML2JAVA.put("dateTime", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("base64Binary", byte[].class);
- XML2JAVA.put("hexBinary", byte[].class);
- XML2JAVA.put("unsignedInt", long.class);
- XML2JAVA.put("unsignedShort", int.class);
- XML2JAVA.put("unsignedByte", short.class);
- XML2JAVA.put("time", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("date", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gDay", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gMonth", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gYear", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gYearMonth", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gMonthDay", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("anySimpleType", java.lang.Object.class); // For elements
- // XML2JAVA.put("anySimpleType", java.lang.String.class); // For
- // attributes
- XML2JAVA.put("duration", javax.xml.datatype.Duration.class);
- XML2JAVA.put("NOTATION", javax.xml.namespace.QName.class);
- }
-
- public static Class getJavaType(QName xmlType) {
- if (URI_2001_SCHEMA_XSD.equals(xmlType.getNamespaceURI())) {
- return XML2JAVA.get(xmlType.getLocalPart());
- } else {
- return null;
- }
- }
-
- private static QName getTypeName(String name) {
- return new QName(URI_2001_SCHEMA_XSD, name);
- }
-
- public static QName getXMLType(Class javaType) {
- return JAVA2XML.get(javaType);
- }
-
- private static String getPackageName(Class<?> cls) {
- String name = cls.getName();
- int index = name.lastIndexOf('.');
- return index == -1 ? "" : name.substring(0, index);
- }
-
- public static String getNamespace(Class<?> cls) {
- String packageName = getPackageName(cls);
- if ("".equals(packageName)) {
- return "";
- }
- StringBuffer ns = new StringBuffer("http://");
- String[] names = packageName.split("\\.");
- for (int i = names.length - 1; i >= 0; i--) {
- ns.append(names[i]);
- if (i != 0) {
- ns.append('.');
- }
- }
- ns.append('/');
- return ns.toString();
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/TypeInfo.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/TypeInfo.java
deleted file mode 100644
index 2598dc8545..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/TypeInfo.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import javax.xml.namespace.QName;
-
-/**
- * An abstraction of XML schema types
- *
- * @version $Rev$ $Date$
- */
-public class TypeInfo {
- private QName name;
-
- private boolean isSimpleType;
-
- private TypeInfo baseType;
-
- /**
- * @param name
- * @param isSimpleType
- */
- public TypeInfo(QName name, boolean isSimpleType, TypeInfo baseType) {
- super();
- this.name = name;
- this.isSimpleType = isSimpleType;
- this.baseType = baseType;
- }
-
- /**
- * @return the isSimpleType
- */
- public boolean isSimpleType() {
- return isSimpleType;
- }
-
- /**
- * @return the name
- */
- public QName getQName() {
- return name;
- }
-
- /**
- * @return the baseType
- */
- public TypeInfo getBaseType() {
- return baseType;
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("Type: ").append(name);
- return sb.toString();
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.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;
- final TypeInfo other = (TypeInfo)obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
deleted file mode 100644
index 12db460959..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
-
-/**
- * The "Wrapper Style" WSDL operation is defined by The Java API for XML-Based
- * Web Services (JAX-WS) 2.0 specification, section 2.3.1.2 Wrapper Style. <p/>
- * A WSDL operation qualifies for wrapper style mapping only if the following
- * criteria are met:
- * <ul>
- * <li>(i) The operation�s input and output messages (if present) each contain
- * only a single part
- * <li>(ii) The input message part refers to a global element declaration whose
- * localname is equal to the operation name
- * <li>(iii) The output message part refers to a global element declaration
- * <li>(iv) The elements referred to by the input and output message parts
- * (henceforth referred to as wrapper elements) are both complex types defined
- * using the xsd:sequence compositor
- * <li>(v) The wrapper elements only contain child elements, they must not
- * contain other structures such as wildcards (element or attribute),
- * xsd:choice, substitution groups (element references are not permitted) or
- * attributes; furthermore, they must not be nillable.
- * </ul>
- *
- * @version $Rev$ $Date$
- */
-public class WrapperInfo {
- private ElementInfo inputWrapperElement;
-
- private ElementInfo outputWrapperElement;
-
- private List<ElementInfo> inputChildElements;
-
- private List<ElementInfo> outputChildElements;
-
- // The data type of the unwrapped input child elements
- private DataType<List<DataType>> unwrappedInputType;
-
- // The data type of the unwrapped output child element (we only supports one child)
- private DataType<XMLType> unwrappedOutputType;
-
- // The data for the input/output wrappers
- private String dataBinding;
-
- // The data type for the input (request) wrapper bean
- private DataType<XMLType> inputWrapperType;
- // The data type for the output (response) wrapper bean
- private DataType<XMLType> outputWrapperType;
-
- public WrapperInfo(String dataBinding,
- ElementInfo inputWrapperElement,
- ElementInfo outputWrapperElement,
- List<ElementInfo> inputElements,
- List<ElementInfo> outputElements) {
- super();
- this.dataBinding = dataBinding;
- this.inputWrapperElement = inputWrapperElement;
- this.outputWrapperElement = outputWrapperElement;
- this.inputChildElements = inputElements;
- this.outputChildElements = outputElements;
- }
-
- /**
- * @return the inputElements
- */
- public List<ElementInfo> getInputChildElements() {
- return inputChildElements;
- }
-
- /**
- * @return the inputWrapperElement
- */
- public ElementInfo getInputWrapperElement() {
- return inputWrapperElement;
- }
-
- /**
- * @return the outputElements
- */
- public List<ElementInfo> getOutputChildElements() {
- return outputChildElements;
- }
-
- /**
- * @return the outputWrapperElement
- */
- public ElementInfo getOutputWrapperElement() {
- return outputWrapperElement;
- }
-
- /**
- * @return the unwrappedInputType
- */
- public DataType<List<DataType>> getUnwrappedInputType() {
- if (unwrappedInputType == null) {
- List<DataType> childTypes = new ArrayList<DataType>();
- for (ElementInfo element : getInputChildElements()) {
- DataType type = getDataType(element);
- childTypes.add(type);
- }
- unwrappedInputType = new DataTypeImpl<List<DataType>>("idl:unwrapped.input", Object[].class, childTypes);
- }
- return unwrappedInputType;
- }
-
- private DataType getDataType(ElementInfo element) {
- DataType type = null;
- if (element.isMany()) {
- DataType logical = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
- type = new DataTypeImpl<DataType>("java:array", Object[].class, logical);
- } else {
- type = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
- }
- return type;
- }
-
- /**
- * @return the unwrappedOutputType
- */
- public DataType getUnwrappedOutputType() {
- if (unwrappedOutputType == null) {
- List<ElementInfo> elements = getOutputChildElements();
- if (elements != null && elements.size() > 0) {
- if (elements.size() > 1) {
- // We don't support output with multiple parts
- // throw new IllegalArgumentException("Multi-part output is not supported");
- }
- ElementInfo element = elements.get(0);
-
- unwrappedOutputType = getDataType(element);
- }
- }
- return unwrappedOutputType;
- }
-
- public Class<?> getInputWrapperClass() {
- return inputWrapperType == null ? null : inputWrapperType.getPhysical();
- }
-
- public Class<?> getOutputWrapperClass() {
- return outputWrapperType == null ? null : outputWrapperType.getPhysical();
- }
-
- public String getDataBinding() {
- return dataBinding;
- }
-
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- public DataType<XMLType> getInputWrapperType() {
- return inputWrapperType;
- }
-
- public void setInputWrapperType(DataType<XMLType> inputWrapperType) {
- this.inputWrapperType = inputWrapperType;
- }
-
- public DataType<XMLType> getOutputWrapperType() {
- return outputWrapperType;
- }
-
- public void setOutputWrapperType(DataType<XMLType> outputWrapperType) {
- this.outputWrapperType = outputWrapperType;
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/XMLType.java b/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/XMLType.java
deleted file mode 100644
index 26ecf6e352..0000000000
--- a/java/sca/contrib/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/XMLType.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.util;
-
-import javax.xml.namespace.QName;
-
-/**
- * The metadata for an XML element or type.
- *
- * @version $Rev$ $Date$
- */
-public class XMLType {
- public static final XMLType UNKNOWN = new XMLType(null, null);
- protected QName element;
- protected QName type;
- protected boolean nillable = true;
- protected boolean many = false;
-
- /**
- * @param element
- */
- public XMLType(ElementInfo element) {
- super();
- this.element = element.getQName();
- if (element.getType() != null) {
- this.type = element.getType().getQName();
- }
- }
-
- /**
- * @param element
- */
- public XMLType(TypeInfo type) {
- this.element = null;
- this.type = type.getQName();
- }
-
- public XMLType(QName element, QName type) {
- this.element = element;
- this.type = type;
- }
-
- /**
- * @return the type
- */
- public QName getTypeName() {
- return type;
- }
-
- public boolean isElement() {
- return element != null;
- }
-
- public QName getElementName() {
- return element;
- }
-
- public void setElementName(QName element) {
- this.element = element;
- }
-
- public void setTypeName(QName type) {
- this.type = type;
- }
-
- public static XMLType getType(QName type) {
- return new XMLType(null, type);
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int PRIME = 31;
- int result = 1;
- result = PRIME * result + ((element == null) ? 0 : element.hashCode());
- result = PRIME * result + ((type == null) ? 0 : type.hashCode());
- return result;
- }
-
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final XMLType other = (XMLType)obj;
- if (element == null) {
- if (other.element != null) {
- return false;
- }
- } else if (!element.equals(other.element)) {
- return false;
- }
- if (type == null) {
- if (other.type != null) {
- return false;
- }
- } else if (!type.equals(other.type)) {
- return false;
- }
- return true;
- }
-
- @Override
- public String toString() {
- return "Element: " + element + " Type: " + type;
- }
-
- public boolean isNillable() {
- return nillable;
- }
-
- public void setNillable(boolean niable) {
- this.nillable = niable;
- }
-
- public boolean isMany() {
- return many;
- }
-
- public void setMany(boolean many) {
- this.many = many;
- }
-
-}
diff --git a/java/sca/contrib/modules/interface/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.InterfaceContractMapper b/java/sca/contrib/modules/interface/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.InterfaceContractMapper
deleted file mode 100644
index 821c58bde1..0000000000
--- a/java/sca/contrib/modules/interface/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.InterfaceContractMapper
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl
diff --git a/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java b/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java
deleted file mode 100644
index 269a3dc038..0000000000
--- a/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/ContractCompatibilityTestCase.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.interfacedef.impl;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.DataType;
-import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.Operation;
-
-/**
- * TODO some tests commented out due to DataType.equals() needing to be strict
- *
- * @version $Rev$ $Date$
- */
-public class ContractCompatibilityTestCase extends TestCase {
-
- private InterfaceContractMapper mapper;
-
- @Override
- protected void setUp() throws Exception {
- ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- mapper = utilities.getUtility(InterfaceContractMapper.class);
- }
-
- public void testNoOperation() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- InterfaceContract target = new MockContract("FooContract");
- mapper.checkCompatibility(source, target, false, false);
- }
-
- public void testBasic() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- Operation opSource1 = newOperation("op1");
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
- InterfaceContract target = new MockContract("FooContract");
- Operation opSource2 = newOperation("op1");
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opSource2);
- target.getInterface().getOperations().addAll(targetOperations.values());
- mapper.checkCompatibility(source, target, false, false);
- }
-
- public void testBasicIncompatibleOperationNames() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- Operation opSource1 = newOperation("op1");
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
- InterfaceContract target = new MockContract("FooContract");
- Operation opSource2 = newOperation("op2");
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op2", opSource2);
- target.getInterface().getOperations().addAll(targetOperations.values());
- try {
- mapper.checkCompatibility(source, target, false, false);
- fail();
- } catch (IncompatibleInterfaceContractException e) {
- // expected
- }
- }
-
- public void testInputTypes() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- List<DataType> sourceInputTypes = new ArrayList<DataType>();
- sourceInputTypes.add(new DataTypeImpl<Type>(Object.class, Object.class));
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(String.class, sourceInputTypes);
- Operation opSource1 = newOperation("op1");
- opSource1.setInputType(inputType);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- List<DataType> targetInputTypes = new ArrayList<DataType>();
- targetInputTypes.add(new DataTypeImpl<Type>(Object.class, Object.class));
- DataType<List<DataType>> targetInputType = new DataTypeImpl<List<DataType>>(String.class, targetInputTypes);
-
- Operation opTarget = newOperation("op1");
- opTarget.setInputType(targetInputType);
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- mapper.checkCompatibility(source, target, false, false);
- }
-
- public void testIncompatibleInputTypes() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- List<DataType> sourceInputTypes = new ArrayList<DataType>();
- sourceInputTypes.add(new DataTypeImpl<Type>(Integer.class, Integer.class));
- DataType<List<DataType>> inputType = new DataTypeImpl<List<DataType>>(String.class, sourceInputTypes);
- Operation opSource1 = newOperation("op1");
- opSource1.setInputType(inputType);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- List<DataType> targetInputTypes = new ArrayList<DataType>();
- targetInputTypes.add(new DataTypeImpl<Type>(String.class, String.class));
- DataType<List<DataType>> targetInputType = new DataTypeImpl<List<DataType>>(String.class, targetInputTypes);
-
- Operation opTarget = newOperation("op1");
- opTarget.setInputType(targetInputType);
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- try {
- mapper.checkCompatibility(source, target, false, false);
- fail();
- } catch (IncompatibleInterfaceContractException e) {
- // expected
- }
- }
-
- /**
- * Verfies source input types can be super types of the target
- */
- public void testSourceSuperTypeInputCompatibility() throws Exception {
- // InterfaceContract source = new MockContract("FooContract");
- // List<DataType> sourceInputTypes = new ArrayList<DataType>();
- // sourceInputTypes.add(new DataTypeImpl<Type>(Object.class,
- // Object.class));
- // DataType<List<DataType>> inputType = new
- // DataTypeImpl<List<DataType>>(String.class, sourceInputTypes);
- // Operation opSource1 = newOperationImpl("op1", inputType, null, null,
- // false, null);
- // Map<String, Operation> sourceOperations = new HashMap<String,
- // Operation>();
- // sourceOperations.put("op1", opSource1);
- // source.getInterface().getOperations().addAll(sourceOperations.values());
- //
- // InterfaceContract target = new MockContract("FooContract");
- // List<DataType> targetInputTypes = new ArrayList<DataType>();
- // targetInputTypes.add(new DataTypeImpl<Type>(String.class,
- // String.class));
- // DataType<List<DataType>> targetInputType =
- // new DataTypeImpl<List<DataType>>(String.class, targetInputTypes);
- //
- // Operation opTarget = newOperationImpl("op1", targetInputType, null,
- // null, false, null);
- // Map<String, Operation> targetOperations = new HashMap<String,
- // Operation>();
- // targetOperations.put("op1", opTarget);
- // target.getInterface().getOperations().addAll(targetOperations.values());
- // wireService.checkCompatibility(source, target, false);
- }
-
- public void testOutputTypes() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- DataType sourceOutputType = new DataTypeImpl<Type>(String.class, String.class);
- Operation opSource1 = newOperation("op1");
- opSource1.setOutputType(sourceOutputType);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- DataType targetOutputType = new DataTypeImpl<Type>(String.class, String.class);
- Operation opTarget = newOperation("op1");
- opTarget.setOutputType(targetOutputType);
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- mapper.checkCompatibility(source, target, false, false);
- }
-
- /**
- * Verifies a return type that is a supertype of of the target is compatible
- */
- public void testSupertypeOutputTypes() throws Exception {
- // InterfaceContract source = new MockContract("FooContract");
- // DataType sourceOutputType = new DataTypeImpl<Type>(Object.class,
- // Object.class);
- // Operation opSource1 = newOperationImpl("op1", null,
- // sourceOutputType, null, false, null);
- // Map<String, Operation> sourceOperations = new HashMap<String,
- // Operation>();
- // sourceOperations.put("op1", opSource1);
- // source.getInterface().getOperations().addAll(sourceOperations.values());
- //
- // InterfaceContract target = new MockContract("FooContract");
- // DataType targetOutputType = new DataTypeImpl<Type>(String.class,
- // String.class);
- // Operation opTarget = newOperationImpl("op1", null, targetOutputType,
- // null, false, null);
- // Map<String, Operation> targetOperations = new HashMap<String,
- // Operation>();
- // targetOperations.put("op1", opTarget);
- // target.getInterface().getOperations().addAll(targetOperations.values());
- // wireService.checkCompatibility(source, target, false);
- }
-
- public void testIncompatibleOutputTypes() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- DataType sourceOutputType = new DataTypeImpl<Type>(String.class, String.class);
- Operation opSource1 = newOperation("op1");
- opSource1.setOutputType(sourceOutputType);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- DataType targetOutputType = new DataTypeImpl<Type>(Integer.class, Integer.class);
- Operation opTarget = newOperation("op1");
- opTarget.setOutputType(targetOutputType);
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- try {
- mapper.checkCompatibility(source, target, false, false);
- fail();
- } catch (IncompatibleInterfaceContractException e) {
- // expected
- }
- }
-
- public void testFaultTypes() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- DataType sourceFaultType = new DataTypeImpl<Type>(String.class, String.class);
- List<DataType> sourceFaultTypes = new ArrayList<DataType>();
- sourceFaultTypes.add(0, sourceFaultType);
- Operation opSource1 = newOperation("op1");
- opSource1.setFaultTypes(sourceFaultTypes);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- DataType targetFaultType = new DataTypeImpl<Type>(String.class, String.class);
- List<DataType> targetFaultTypes = new ArrayList<DataType>();
- targetFaultTypes.add(0, targetFaultType);
-
- Operation opTarget = newOperation("op1");
- opTarget.setFaultTypes(targetFaultTypes);
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- mapper.checkCompatibility(source, target, false, false);
- }
-
- public void testSourceFaultTargetNoFaultCompatibility() throws Exception {
- InterfaceContract source = new MockContract("FooContract");
- DataType sourceFaultType = new DataTypeImpl<Type>(String.class, String.class);
- List<DataType> sourceFaultTypes = new ArrayList<DataType>();
- sourceFaultTypes.add(0, sourceFaultType);
- Operation opSource1 = newOperation("op1");
- opSource1.setFaultTypes(sourceFaultTypes);
- Map<String, Operation> sourceOperations = new HashMap<String, Operation>();
- sourceOperations.put("op1", opSource1);
- source.getInterface().getOperations().addAll(sourceOperations.values());
-
- InterfaceContract target = new MockContract("FooContract");
- Operation opTarget = newOperation("op1");
- Map<String, Operation> targetOperations = new HashMap<String, Operation>();
- targetOperations.put("op1", opTarget);
- target.getInterface().getOperations().addAll(targetOperations.values());
- mapper.checkCompatibility(source, target, false, false);
- }
-
- /**
- * Verifies a source's fault which is a supertype of the target's fault are
- * compatible
- *
- * @throws Exception
- */
- public void testFaultSuperTypes() throws Exception {
- // InterfaceContract source = new MockContract("FooContract");
- // DataType sourceFaultType = new DataTypeImpl<Type>(Exception.class,
- // Exception.class);
- // List<DataType> sourceFaultTypes = new ArrayList<DataType>();
- // sourceFaultTypes.add(0, sourceFaultType);
- // Operation opSource1 = newOperationImpl("op1", null, null,
- // sourceFaultTypes, false, null);
- // Map<String, Operation> sourceOperations = new HashMap<String,
- // Operation>();
- // sourceOperations.put("op1", opSource1);
- // source.getInterface().getOperations().addAll(sourceOperations.values());
- //
- // InterfaceContract target = new MockContract("FooContract");
- // DataType targetFaultType = new
- // DataTypeImpl<Type>(TuscanyException.class, TuscanyException.class);
- // List<DataType> targetFaultTypes = new ArrayList<DataType>();
- // targetFaultTypes.add(0, targetFaultType);
- //
- // Operation opTarget = newOperationImpl("op1", null, null,
- // targetFaultTypes, false, null);
- // Map<String, Operation> targetOperations = new HashMap<String,
- // Operation>();
- // targetOperations.put("op1", opTarget);
- // target.getInterface().getOperations().addAll(targetOperations.values());
- // wireService.checkCompatibility(source, target, false);
- }
-
- /**
- * Verifies a source's faults which are supertypes and a superset of the
- * target's faults are compatible
- */
- public void testFaultSuperTypesAndSuperset() throws Exception {
- // InterfaceContract source = new MockContract("FooContract");
- // DataType sourceFaultType = new DataTypeImpl<Type>(Exception.class,
- // Exception.class);
- // DataType sourceFaultType2 = new
- // DataTypeImpl<Type>(RuntimeException.class, RuntimeException.class);
- // List<DataType> sourceFaultTypes = new ArrayList<DataType>();
- // sourceFaultTypes.add(0, sourceFaultType);
- // sourceFaultTypes.add(1, sourceFaultType2);
- // Operation opSource1 = newOperationImpl("op1", null, null,
- // sourceFaultTypes, false, null);
- // Map<String, Operation> sourceOperations = new HashMap<String,
- // Operation>();
- // sourceOperations.put("op1", opSource1);
- // source.getInterface().getOperations().addAll(sourceOperations.values());
- //
- // InterfaceContract target = new MockContract("FooContract");
- // DataType targetFaultType = new
- // DataTypeImpl<Type>(TuscanyException.class, TuscanyException.class);
- // List<DataType> targetFaultTypes = new ArrayList<DataType>();
- // targetFaultTypes.add(0, targetFaultType);
- //
- // Operation opTarget = newOperationImpl("op1", null, null,
- // targetFaultTypes, false, null);
- // Map<String, Operation> targetOperations = new HashMap<String,
- // Operation>();
- // targetOperations.put("op1", opTarget);
- // target.getInterface().getOperations().addAll(targetOperations.values());
- // wireService.checkCompatibility(source, target, false);
- }
-
- private static class MockInterface extends InterfaceImpl {
-
- }
-
- private class MockContract<T> extends InterfaceContractImpl {
- public MockContract() {
- }
-
- public MockContract(String interfaceClass) {
- Interface jInterface = new MockInterface();
- setInterface(jInterface);
- }
- }
-
- private static Operation newOperation(String name) {
- Operation operation = new OperationImpl();
- operation.setName(name);
- return operation;
- }
-}
diff --git a/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java b/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java
deleted file mode 100644
index 338170da52..0000000000
--- a/java/sca/contrib/modules/interface/src/test/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractTestCase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.interfacedef.impl;
-
-
-import junit.framework.Assert;
-
-import org.apache.tuscany.sca.interfacedef.Interface;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @version $Rev$ $Date$
- */
-public class InterfaceContractTestCase {
- private InterfaceContract contract;
- /**
- * @throws java.lang.Exception
- */
- @Before
- public void setUp() throws Exception {
- contract = new MockInterfaceContract();
- Interface i1 = new MockInterface();
- contract.setInterface(i1);
- Operation op1 = newOperation("op1");
- i1.getOperations().add(op1);
- Interface i2 = new MockInterface();
- contract.setCallbackInterface(i2);
- Operation callbackOp1 = newOperation("callbackOp1");
- i2.getOperations().add(callbackOp1);
- }
-
- @Test
- public void testClone() throws Exception {
- InterfaceContract copy = (InterfaceContract) contract.clone();
- Assert.assertEquals(contract, copy);
- }
-
- private static class MockInterfaceContract extends InterfaceContractImpl implements InterfaceContract {
- }
-
- private static class MockInterface extends InterfaceImpl implements Interface {
- }
-
- private static Operation newOperation(String name) {
- Operation operation = new OperationImpl();
- operation.setName(name);
- return operation;
- }
-}