1 17 package org.apache.servicemix.common.tools.wsdl; 18 19 import java.io.ByteArrayInputStream ; 20 import java.io.ByteArrayOutputStream ; 21 import java.net.URI ; 22 import java.net.URL ; 23 24 import javax.wsdl.Definition; 25 import javax.wsdl.PortType; 26 import javax.wsdl.factory.WSDLFactory; 27 import javax.wsdl.xml.WSDLReader; 28 import javax.wsdl.xml.WSDLWriter; 29 import javax.xml.namespace.QName ; 30 import javax.xml.parsers.DocumentBuilderFactory ; 31 32 import junit.framework.TestCase; 33 34 import org.w3c.dom.Document ; 35 36 public class WSDLFlattenerTest extends TestCase { 37 38 public void test() throws Exception { 39 URL resource = getClass().getClassLoader().getResource("wsn/wsn.wsdl"); 40 WSDLReader reader = WSDLFactory.newInstance().newWSDLReader(); 41 Definition definition = reader.readWSDL(null, resource.toString()); 42 WSDLFlattener flattener = new WSDLFlattener(definition); 43 44 Definition flat = flattener.getDefinition(new QName ("http://docs.oasis-open.org/wsn/brw-2", "NotificationBroker")); 45 assertNotNull(flat); 46 47 ByteArrayOutputStream baos = new ByteArrayOutputStream (); 49 WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter(); 50 writer.writeWSDL(flat, baos); 51 52 System.err.println(baos.toString()); 53 54 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 55 factory.setNamespaceAware(true); 56 Document description = factory.newDocumentBuilder().parse(new ByteArrayInputStream (baos.toByteArray())); 57 Definition newFlat = WSDLFactory.newInstance().newWSDLReader().readWSDL(null, description); 58 assertNotNull(newFlat); 59 assertEquals(1, newFlat.getPortTypes().size()); 60 PortType portType = (PortType) newFlat.getPortTypes().values().iterator().next(); 61 assertNotNull(portType); 62 } 63 64 public void testResolve() throws Exception { 65 URI base = URI.create("jar:file:/C:/java/servicemix/servicemix-assembly/target/incubator-servicemix-3.0-SNAPSHOT/bin/incubator-servicemix-3.0-SNAPSHOT/bin/../lib/optional/servicemix-wsn2005-3.0-SNAPSHOT.jar!/org/apache/servicemix/wsn/wsn.wsdl"); 66 String loc = "b-2.xsd"; 67 URI rel = SchemaCollection.resolve(base, loc); 68 assertEquals("jar:file:/C:/java/servicemix/servicemix-assembly/target/incubator-servicemix-3.0-SNAPSHOT/bin/incubator-servicemix-3.0-SNAPSHOT/bin/../lib/optional/servicemix-wsn2005-3.0-SNAPSHOT.jar!/org/apache/servicemix/wsn/b-2.xsd", rel.toString()); 69 System.out.println(rel); 70 } 71 72 } 73 | Popular Tags |