KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > servicemix > common > tools > wsdl > WSDLFlattenerTest


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17 package org.apache.servicemix.common.tools.wsdl;
18
19 import java.io.ByteArrayInputStream JavaDoc;
20 import java.io.ByteArrayOutputStream JavaDoc;
21 import java.net.URI JavaDoc;
22 import java.net.URL JavaDoc;
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 JavaDoc;
30 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
31
32 import junit.framework.TestCase;
33
34 import org.w3c.dom.Document JavaDoc;
35
36 public class WSDLFlattenerTest extends TestCase {
37
38     public void test() throws Exception JavaDoc {
39         URL JavaDoc 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 JavaDoc("http://docs.oasis-open.org/wsn/brw-2", "NotificationBroker"));
45         assertNotNull(flat);
46         
47         // Check that the definition is really standalone
48
ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
49         WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
50         writer.writeWSDL(flat, baos);
51         
52         System.err.println(baos.toString());
53         
54         DocumentBuilderFactory JavaDoc factory = DocumentBuilderFactory.newInstance();
55         factory.setNamespaceAware(true);
56         Document JavaDoc description = factory.newDocumentBuilder().parse(new ByteArrayInputStream JavaDoc(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 JavaDoc {
65         URI JavaDoc 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 JavaDoc loc = "b-2.xsd";
67         URI JavaDoc 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