summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java291
1 files changed, 150 insertions, 141 deletions
diff --git a/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java b/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java
index c4f4e55899..13a8583938 100644
--- a/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java
+++ b/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java
@@ -107,165 +107,174 @@ public class WSDLSerializationTestCase extends TestCase {
*/
public void testTuscanySerialization() throws Exception {
+
+
// read in WSDL
String contributionLocation = "target/classes";
NodeImpl node = (NodeImpl)NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.composite",
new Contribution("test", contributionLocation));
node.start();
- RuntimeEndpointImpl endpoint = (RuntimeEndpointImpl)node.getDomainComposite().getComponents().get(0).getServices().get(0).getEndpoints().get(0);
- WSDLInterface wsdlInterface = (WSDLInterface)endpoint.getBindingInterfaceContract().getInterface();
-
- WSDLDefinition wsdlDefinition = wsdlInterface.getWsdlDefinition();
- Definition definition = wsdlDefinition.getDefinition();
-
- // write out a flattened WSDL along with XSD
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- try {
- WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
- String baseURI = wsdlDefinition.getLocation().toString();
- outStream.write(baseURI.getBytes());
- outStream.write(separator);
- writer.writeWSDL(definition, outStream);
- for (WSDLDefinition importedWSDLDefintion : wsdlDefinition.getImportedDefinitions()){
- outStream.write(separator);
- baseURI = importedWSDLDefintion.getLocation().toString();
+ try {
+
+ RuntimeEndpointImpl endpoint = (RuntimeEndpointImpl)node.getDomainComposite().getComponents().get(0).getServices().get(0).getEndpoints().get(0);
+ WSDLInterface wsdlInterface = (WSDLInterface)endpoint.getBindingInterfaceContract().getInterface();
+
+ WSDLDefinition wsdlDefinition = wsdlInterface.getWsdlDefinition();
+ Definition definition = wsdlDefinition.getDefinition();
+
+ // write out a flattened WSDL along with XSD
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ try {
+ WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
+ String baseURI = wsdlDefinition.getLocation().toString();
outStream.write(baseURI.getBytes());
- outStream.write(separator);
- writer.writeWSDL(importedWSDLDefintion.getDefinition(), outStream);
- }
- for (XSDefinition xsdDefinition : wsdlDefinition.getXmlSchemas()){
- // we store a reference to the schema schema. We don't need to write that out.
- // also ignore schema that are extract from the original WSDL (have in their location)
- if (!xsdDefinition.getNamespace().equals("http://www.w3.org/2001/XMLSchema") &&
- xsdDefinition.getSchema() != null){
- writeSchema(outStream, xsdDefinition.getSchema());
+ outStream.write(separator);
+ writer.writeWSDL(definition, outStream);
+ for (WSDLDefinition importedWSDLDefintion : wsdlDefinition.getImportedDefinitions()){
+ outStream.write(separator);
+ baseURI = importedWSDLDefintion.getLocation().toString();
+ outStream.write(baseURI.getBytes());
+ outStream.write(separator);
+ writer.writeWSDL(importedWSDLDefintion.getDefinition(), outStream);
}
- }
- } catch (Exception e){
- throw new RuntimeException(e);
- }
-
- String wsdlString = outStream.toString();
- //System.out.println(wsdlString);
-
- // Read the WSDL and XSD back in from the string
- String xmlArray[] = wsdlString.split("_X_");
- String topWSDLLocation = null;
- Map<String, XMLString> xmlMap = new HashMap<String, XMLString>();
-
- for (int i = 0; i < xmlArray.length; i = i + 2){
- String location = xmlArray[i];
- String xml = xmlArray[i+1];
- // strip the file name out of the location
- location = location.substring(location.lastIndexOf("/") + 1);
+ for (XSDefinition xsdDefinition : wsdlDefinition.getXmlSchemas()){
+ // we store a reference to the schema schema. We don't need to write that out.
+ // also ignore schema that are extract from the original WSDL (have in their location)
+ if (!xsdDefinition.getNamespace().equals("http://www.w3.org/2001/XMLSchema") &&
+ xsdDefinition.getSchema() != null){
+ writeSchema(outStream, xsdDefinition.getSchema());
+ }
+ }
+ } catch (Exception e){
+ throw new RuntimeException(e);
+ }
+
+ String wsdlString = outStream.toString();
+ //System.out.println(wsdlString);
- if (location.endsWith(".wsdl")){
- xmlMap.put(location,
- new WSDLInfo(xmlArray[i],
- xml));
+ // Read the WSDL and XSD back in from the string
+ String xmlArray[] = wsdlString.split("_X_");
+ String topWSDLLocation = null;
+ Map<String, XMLString> xmlMap = new HashMap<String, XMLString>();
+
+ for (int i = 0; i < xmlArray.length; i = i + 2){
+ String location = xmlArray[i];
+ String xml = xmlArray[i+1];
+ // strip the file name out of the location
+ location = location.substring(location.lastIndexOf("/") + 1);
- if (topWSDLLocation == null){
- topWSDLLocation = location;
+ if (location.endsWith(".wsdl")){
+ xmlMap.put(location,
+ new WSDLInfo(xmlArray[i],
+ xml));
+
+ if (topWSDLLocation == null){
+ topWSDLLocation = location;
+ }
+ } else {
+ xmlMap.put(location,
+ new XSDInfo(xmlArray[i],
+ xml));
}
- } else {
- xmlMap.put(location,
- new XSDInfo(xmlArray[i],
- xml));
}
- }
-
- ExtensionPointRegistry registry = endpoint.getCompositeContext().getExtensionPointRegistry();
- FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
- org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory wsdlFactory = modelFactories.getFactory(org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory.class);
- XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class);
- XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
- schemaCollection.setSchemaResolver(new XSDURIResolverImpl(xmlMap));
- ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
- final org.apache.tuscany.sca.contribution.Contribution contribution = contributionFactory.createContribution();
- ProcessorContext processorContext = new ProcessorContext();
-
- ExtensibleModelResolver extensibleResolver = new ExtensibleModelResolver(contribution, registry.getExtensionPoint(ModelResolverExtensionPoint.class), modelFactories);
- WSDLModelResolver wsdlResolver = (WSDLModelResolver)extensibleResolver.getModelResolverInstance(WSDLDefinition.class);
- XSDModelResolver xsdResolver = (XSDModelResolver)extensibleResolver.getModelResolverInstance(XSDefinition.class);
- contribution.setURI("temp");
- contribution.setLocation(topWSDLLocation);
- contribution.setModelResolver(extensibleResolver);
-
- // read
- for (XMLString xmlString : xmlMap.values()){
- if (xmlString instanceof WSDLInfo){
- WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
- reader.setFeature("javax.wsdl.verbose", false);
- reader.setFeature("javax.wsdl.importDocuments", true);
- WSDLLocatorImpl locator = new WSDLLocatorImpl(xmlString.getBaseURI(), xmlMap);
- Definition readDefinition = reader.readWSDL(locator);
-
- wsdlDefinition = wsdlFactory.createWSDLDefinition();
- wsdlDefinition.setDefinition(readDefinition);
- wsdlDefinition.setLocation(new URI(xmlString.getBaseURI()));
-
- ((WSDLInfo)xmlString).setWsdlDefintion(wsdlDefinition);
- wsdlResolver.addModel(wsdlDefinition, processorContext);
-
- } else {
- InputStream inputStream = new ByteArrayInputStream(xmlString.getXmlString().getBytes());
- InputSource inputSource = new InputSource(inputStream);
- inputSource.setSystemId(xmlString.getBaseURI());
- XmlSchema schema = schemaCollection.read(inputSource, null);
- inputStream.close();
-
- XSDefinition xsdDefinition = xsdFactory.createXSDefinition();
- xsdDefinition.setSchema(schema);
-
- ((XSDInfo)xmlString).setXsdDefinition(xsdDefinition);
- xsdResolver.addModel(xsdDefinition, processorContext);
+
+ ExtensionPointRegistry registry = endpoint.getCompositeContext().getExtensionPointRegistry();
+ FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
+ org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory wsdlFactory = modelFactories.getFactory(org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory.class);
+ XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class);
+ XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+ schemaCollection.setSchemaResolver(new XSDURIResolverImpl(xmlMap));
+ ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
+ final org.apache.tuscany.sca.contribution.Contribution contribution = contributionFactory.createContribution();
+ ProcessorContext processorContext = new ProcessorContext();
+
+ ExtensibleModelResolver extensibleResolver = new ExtensibleModelResolver(contribution, registry.getExtensionPoint(ModelResolverExtensionPoint.class), modelFactories);
+ WSDLModelResolver wsdlResolver = (WSDLModelResolver)extensibleResolver.getModelResolverInstance(WSDLDefinition.class);
+ XSDModelResolver xsdResolver = (XSDModelResolver)extensibleResolver.getModelResolverInstance(XSDefinition.class);
+ contribution.setURI("temp");
+ contribution.setLocation(topWSDLLocation);
+ contribution.setModelResolver(extensibleResolver);
+
+ // read
+ for (XMLString xmlString : xmlMap.values()){
+ if (xmlString instanceof WSDLInfo){
+ WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+ reader.setFeature("javax.wsdl.verbose", false);
+ reader.setFeature("javax.wsdl.importDocuments", true);
+ WSDLLocatorImpl locator = new WSDLLocatorImpl(xmlString.getBaseURI(), xmlMap);
+ Definition readDefinition = reader.readWSDL(locator);
+
+ wsdlDefinition = wsdlFactory.createWSDLDefinition();
+ wsdlDefinition.setDefinition(readDefinition);
+ wsdlDefinition.setLocation(new URI(xmlString.getBaseURI()));
+
+ ((WSDLInfo)xmlString).setWsdlDefintion(wsdlDefinition);
+ wsdlResolver.addModel(wsdlDefinition, processorContext);
+
+ } else {
+ InputStream inputStream = new ByteArrayInputStream(xmlString.getXmlString().getBytes());
+ InputSource inputSource = new InputSource(inputStream);
+ inputSource.setSystemId(xmlString.getBaseURI());
+ XmlSchema schema = schemaCollection.read(inputSource, null);
+ inputStream.close();
+
+ XSDefinition xsdDefinition = xsdFactory.createXSDefinition();
+ xsdDefinition.setSchema(schema);
+
+ ((XSDInfo)xmlString).setXsdDefinition(xsdDefinition);
+ xsdResolver.addModel(xsdDefinition, processorContext);
+ }
}
- }
-
- // resolve
- for (XMLString xmlString : xmlMap.values()){
- if (xmlString instanceof WSDLInfo){
- wsdlDefinition = ((WSDLInfo)xmlString).getWsdlDefintion();
-
- // link to imports
- for (Map.Entry<String, List<javax.wsdl.Import>> entry :
- ((Map<String, List<javax.wsdl.Import>>)wsdlDefinition.getDefinition().getImports()).entrySet()) {
- for (javax.wsdl.Import imp : entry.getValue()) {
- String wsdlName = imp.getDefinition().getDocumentBaseURI();
- WSDLInfo wsdlInfo = (WSDLInfo)xmlMap.get(getFilenameWithoutPath(wsdlName));
- wsdlDefinition.getImportedDefinitions().add(wsdlInfo.getWsdlDefintion());
+
+ // resolve
+ for (XMLString xmlString : xmlMap.values()){
+ if (xmlString instanceof WSDLInfo){
+ wsdlDefinition = ((WSDLInfo)xmlString).getWsdlDefintion();
+
+ // link to imports
+ for (Map.Entry<String, List<javax.wsdl.Import>> entry :
+ ((Map<String, List<javax.wsdl.Import>>)wsdlDefinition.getDefinition().getImports()).entrySet()) {
+ for (javax.wsdl.Import imp : entry.getValue()) {
+ String wsdlName = imp.getDefinition().getDocumentBaseURI();
+ WSDLInfo wsdlInfo = (WSDLInfo)xmlMap.get(getFilenameWithoutPath(wsdlName));
+ wsdlDefinition.getImportedDefinitions().add(wsdlInfo.getWsdlDefintion());
+ }
}
- }
-
- // link to in-line types
- Types types = wsdlDefinition.getDefinition().getTypes();
- if ( types != null){
- for (int i=0; i < types.getExtensibilityElements().size(); i++){
- String schemaName = xmlString.getBaseURI() + "#" + i++;
- XSDInfo xsdInfo = (XSDInfo)xmlMap.get(getFilenameWithoutPath(schemaName));
- wsdlDefinition.getXmlSchemas().add(xsdInfo.getXsdDefinition());
+
+ // link to in-line types
+ Types types = wsdlDefinition.getDefinition().getTypes();
+ if ( types != null){
+ for (int i=0; i < types.getExtensibilityElements().size(); i++){
+ String schemaName = xmlString.getBaseURI() + "#" + i++;
+ XSDInfo xsdInfo = (XSDInfo)xmlMap.get(getFilenameWithoutPath(schemaName));
+ wsdlDefinition.getXmlSchemas().add(xsdInfo.getXsdDefinition());
+ }
}
- }
-
- } else {
-
+
+ } else {
+
+ }
}
+
+ WSDLInfo topWSDL = (WSDLInfo)xmlMap.get(topWSDLLocation);
+ WSDLDefinition topWSDLDefinition = topWSDL.getWsdlDefintion();
+
+ PortType portType = (PortType)topWSDLDefinition.getDefinition().getAllPortTypes().values().iterator().next();
+ WSDLInterface readWSDLInterface = wsdlFactory.createWSDLInterface(portType, topWSDLDefinition, extensibleResolver, null);
+
+ // now check what we have just read with what we started out with to see if the compatibility test passes
+ // in the real system have to check contracts not interfaces
+ UtilityExtensionPoint utils = registry.getExtensionPoint(UtilityExtensionPoint.class);
+ InterfaceContractMapper interfaceContractMapper = utils.getUtility(InterfaceContractMapper.class);
+ boolean match = interfaceContractMapper.isCompatibleSubset(wsdlInterface, readWSDLInterface);
+ Assert.assertTrue(match);
+ } catch(Exception ex){
+ System.out.println(ex.toString());
+ ex.printStackTrace();
+ Assert.fail();
}
- WSDLInfo topWSDL = (WSDLInfo)xmlMap.get(topWSDLLocation);
- WSDLDefinition topWSDLDefinition = topWSDL.getWsdlDefintion();
-
- PortType portType = (PortType)topWSDLDefinition.getDefinition().getAllPortTypes().values().iterator().next();
- WSDLInterface readWSDLInterface = wsdlFactory.createWSDLInterface(portType, topWSDLDefinition, extensibleResolver, null);
-
- // now check what we have just read with what we started out with to see if the compatibility test passes
- // in the real system have to check contracts not interfaces
- UtilityExtensionPoint utils = registry.getExtensionPoint(UtilityExtensionPoint.class);
- InterfaceContractMapper interfaceContractMapper = utils.getUtility(InterfaceContractMapper.class);
- boolean match = interfaceContractMapper.isCompatibleSubset(wsdlInterface, readWSDLInterface);
- Assert.assertTrue(match);
-
node.stop();
}