You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2011/08/12 19:08:26 UTC

svn commit: r1157190 - /tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java

Author: slaws
Date: Fri Aug 12 17:08:26 2011
New Revision: 1157190

URL: http://svn.apache.org/viewvc?rev=1157190&view=rev
Log:
Any exception in tests causes node.stop() to be missed so add try/catch

Modified:
    tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java

Modified: tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java?rev=1157190&r1=1157189&r2=1157190&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java Fri Aug 12 17:08:26 2011
@@ -107,165 +107,174 @@ public class WSDLSerializationTestCase e
 */    
     
     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);
-            
-            if (location.endsWith(".wsdl")){
-                xmlMap.put(location,
-                           new WSDLInfo(xmlArray[i],
-                                          xml));
+                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);
+            
+            // 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();
     }