You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2012/06/13 08:32:41 UTC
svn commit: r1349654 - in /axis/axis2/java/core/trunk/modules/codegen: ./
test-resources/schemas/custom_schemas/ test/org/apache/axis2/wsdl/codegen/
test/org/apache/axis2/wsdl/codegen/extension/
test/org/apache/axis2/wsdl/codegen/schema/ test/org/apach...
Author: sagara
Date: Wed Jun 13 06:32:40 2012
New Revision: 1349654
URL: http://svn.apache.org/viewvc?rev=1349654&view=rev
Log:
AXIS2-5335 - applying test cases patch for codegen module.
Added:
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd (with props)
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java (with props)
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java (with props)
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java (with props)
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java (with props)
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java (with props)
Modified:
axis/axis2/java/core/trunk/modules/codegen/pom.xml
axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGeneratorTest.java
Modified: axis/axis2/java/core/trunk/modules/codegen/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/pom.xml?rev=1349654&r1=1349653&r2=1349654&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/codegen/pom.xml Wed Jun 13 06:32:40 2012
@@ -77,6 +77,11 @@
<artifactId>jaxws-rt</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<url>http://axis.apache.org/axis2/java/core/</url>
<scm>
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3schools.com" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.w3schools.com">
+ <xs:element name="note">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="to" type="xs:string"/>
+ <xs:element name="from" type="xs:string"/>
+ <xs:element name="heading" type="xs:string"/>
+ <xs:element name="body" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,31 @@
+<!--
+ ~ 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.
+ -->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://test2.com" xmlns:tns="http://test.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://test.com">
+ <xsd:import namespace="http://test2.com"/>
+ <xsd:element name="testElement6" type="ns0:testComplexType2"/>
+ <xsd:element name="testElement1">
+ <xsd:complexType>
+ <xsd:sequence/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="testComplexType2">
+ <xsd:sequence/>
+ </xsd:complexType>
+</xsd:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema1.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://test2.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://test2.com">
+ <xsd:complexType name="testComplexType2">
+ <xsd:sequence/>
+ </xsd:complexType>
+</xsd:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema2.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,33 @@
+<!--
+ ~ 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.
+ -->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://test.com" xmlns:tns="http://test1.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://test1.com">
+ <xsd:import namespace="http://test.com"/>
+ <xsd:element name="testElement5" type="ns1:testComplexType2"/>
+ <xsd:element name="testElement4" type="tns:testComplexType1"/>
+ <xsd:element name="testElement3" type="xsd:string"/>
+ <xsd:element name="testElement2">
+ <xsd:complexType>
+ <xsd:sequence/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="testComplexType1">
+ <xsd:sequence/>
+ </xsd:complexType>
+</xsd:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/generatedSchema3.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,38 @@
+<?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.
+ -->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+targetNamespace="http://www.w3schools.com"
+xmlns="http://www.w3schools.com"
+elementFormDefault="qualified">
+
+<xs:element name="note">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="to" type="xs:string"/>
+ <xs:element name="from" type="xs:string"/>
+ <xs:element name="heading" type="xs:string"/>
+ <xs:element name="body" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:element>
+
+</xs:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/sampleSchema1.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd Wed Jun 13 06:32:40 2012
@@ -0,0 +1,31 @@
+<!--
+ ~ 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.
+ -->
+
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:ord="http://www.w3schools.com">
+ <xs:import namespace="http://www.w3schools.com"
+ schemaLocation="test-resources/schemas/custom_schemas/sampleSchema1.xsd"/>
+ <xs:element name="envelope" type="EnvelopeType"/>
+ <xs:complexType name="EnvelopeType">
+ <xs:sequence>
+ <xs:element ref="ord:order" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Propchange: axis/axis2/java/core/trunk/modules/codegen/test-resources/schemas/custom_schemas/schemaIncludes.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java Wed Jun 13 06:32:40 2012
@@ -0,0 +1,66 @@
+/*
+ * 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.axis2.wsdl.codegen;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
+import org.apache.axis2.util.CommandLineOption;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.junit.Test;
+
+public class CodeGenConfigurationTest extends XMLSchemaTest{
+
+ protected AxisService service;
+ private ArrayList<XmlSchema> schemas;
+
+ @Override
+ protected void setUp() throws Exception {
+ service = new AxisService();
+ schemas = new ArrayList<XmlSchema>();
+ loadSampleSchemaFile(schemas);
+ service.addSchema(schemas);
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ service=null;
+ schemas=null;
+
+ super.tearDown();
+ }
+
+ @Test
+ public void testGetSchemaListForAllServices(){
+ Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
+ CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+ configuration.addAxisService(service);
+ List<XmlSchema> list=configuration.getSchemaListForAllServices();
+ assertEquals(schemas.get(0), list.get(0));
+ }
+
+
+}
Propchange: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java Wed Jun 13 06:32:40 2012
@@ -0,0 +1,155 @@
+/*
+ * 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.axis2.wsdl.codegen;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.util.ArrayList;
+
+import javax.xml.transform.stream.StreamSource;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.util.XMLPrettyPrinter;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.custommonkey.xmlunit.Diff;
+
+public abstract class XMLSchemaTest extends TestCase {
+
+ public final String XMLSchemaNameSpace = "xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"";
+
+ public final String CustomSchemaLocation = "test-resources"
+ + File.separator + "schemas" + File.separator + "custom_schemas"
+ + File.separator + "note.xsd";
+
+ public final String customDirectoryLocation = "test-resources"
+ + File.separator + "schemas" + File.separator + "custom_schemas"
+ + File.separator;
+
+ public final String SampleSchemasDirectory = "test-resources"
+ + File.separator + "schemas" + File.separator + "custom_schemas"
+ + File.separator;
+
+ public final String MappingFileLocation = "test-resources" + File.separator
+ + "schemas" + File.separator + "mapping_files" + File.separator
+ + "mapping1.txt";
+
+ public void assertSimilarXML(String XML1, String XML2) throws Exception {
+ Diff myDiff = new Diff(XML1, XML2);
+ assertTrue("XML similar " + myDiff.toString(), myDiff.similar());
+
+ }
+
+ public void assertIdenticalXML(String XML1, String XML2) throws Exception {
+ Diff myDiff = new Diff(XML1, XML2);
+ assertTrue("XML similar " + myDiff.toString(), myDiff.identical());
+
+ }
+
+ public void loadSampleSchemaFile(ArrayList<XmlSchema> schemas) throws Exception{
+ XmlSchemaCollection xmlSchemaCollection = new XmlSchemaCollection();
+ File file = null;
+ int i = 1;
+
+ file = new File(SampleSchemasDirectory + "sampleSchema" + i
+ + ".xsd");
+ while (file.exists()) {
+ InputStream is = new FileInputStream(file);
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+ schemas.add(schema);
+ i++;
+ file = new File(SampleSchemasDirectory + "sampleSchema" + i
+ + ".xsd");
+ }
+
+ }
+
+ public XmlSchema loadSingleSchemaFile(int i) throws Exception{
+ File file = new File(SampleSchemasDirectory + "sampleSchema" + i
+ + ".xsd");
+ InputStream is = new FileInputStream(file);
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+ return schema;
+ }
+
+
+ public String readFile(String fileName) throws Exception {
+ File file = new File(fileName);
+ char[] buffer = null;
+ BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
+ buffer = new char[(int) file.length()];
+ int i = 0;
+ int c = bufferedReader.read();
+ while (c != -1) {
+ buffer[i++] = (char) c;
+ c = bufferedReader.read();
+ }
+ return new String(buffer);
+ }
+
+ public String readXMLfromSchemaFile(String path) throws Exception {
+ InputStream is = new FileInputStream(path);
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ schema.write(stream);
+ is.close();
+ return stream.toString();
+ }
+
+
+ public String readWSDLFromFile(String path) throws Exception {
+ File file=new File(path);
+ XMLPrettyPrinter.prettify(file); //this is used to correct unnecessary formatting in the file
+ return readFile(path);
+ }
+
+ public void writeToFile(String path,String data) throws Exception{
+ FileWriter fileWriter=new FileWriter(new File(path));
+ fileWriter.write(data);
+ fileWriter.flush();
+ fileWriter.close();
+ }
+
+ public String schemaToString(XmlSchema schema){
+ ByteArrayOutputStream stream=new ByteArrayOutputStream();
+ schema.write(stream);
+ return stream.toString();
+ }
+
+ public XmlSchema loadSingleSchemaFile(String path) throws Exception{
+ File file = new File(path);
+ InputStream is = new FileInputStream(file);
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+ return schema;
+ }
+
+
+
+}
Propchange: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/XMLSchemaTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java Wed Jun 13 06:32:40 2012
@@ -0,0 +1,166 @@
+/*
+ * 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.axis2.wsdl.codegen.extension;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.client.OperationClient;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.description.AxisMessage;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.util.CommandLineOption;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.junit.Test;
+
+public class JAXWSWapperExtensionTest extends XMLSchemaTest {
+ private AxisMessage axisMessage;
+ protected AxisService service;
+ private ArrayList<XmlSchema> schemas;
+ private AxisOperation axisOperation;
+
+ @Override
+ public void setUp() throws Exception {
+ service = new AxisService();
+ schemas = new ArrayList<XmlSchema>();
+ loadSampleSchemaFile(schemas);
+ service.addSchema(schemas);
+ axisMessage = new AxisMessage();
+ axisOperation = new AxisOperation() {
+
+ @Override
+ public void setRemainingPhasesInFlow(ArrayList list) {
+ }
+
+ @Override
+ public void setPhasesOutFlow(ArrayList list) {
+ }
+
+ @Override
+ public AxisService getAxisService() {
+ return service;
+ }
+
+ @Override
+ public void setPhasesOutFaultFlow(ArrayList list) {
+ }
+
+ @Override
+ public void setPhasesInFaultFlow(ArrayList list) {
+ }
+
+ @Override
+ public ArrayList getRemainingPhasesInFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesOutFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesOutFaultFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesInFaultFlow() {
+ return null;
+ }
+
+ @Override
+ public AxisMessage getMessage(String label) {
+ //A message has to be returned
+ return axisMessage;
+ }
+
+ @Override
+ public OperationClient createClient(ServiceContext sc, Options options) {
+ return null;
+ }
+
+ @Override
+ public void addMessageContext(MessageContext msgContext, OperationContext opContext)
+ throws AxisFault {
+ }
+
+ @Override
+ public void addMessage(AxisMessage message, String label) {
+ }
+
+ @Override
+ public void addFaultMessageContext(MessageContext msgContext, OperationContext opContext)
+ throws AxisFault {
+ }
+ };
+
+ axisMessage.setParent(axisOperation);
+ axisMessage.setElementQName(new QName("http://www.w3schools.com", "note"));
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ axisMessage = null;
+ service = null;
+ schemas = null;
+ axisOperation=null;
+ super.tearDown();
+ }
+
+ @Test
+ public void testEngage() throws Exception {
+ //This is successful if the test is done without any exceptions
+
+ axisOperation.addMessage(axisMessage, "test_message");
+ service.addOperation(axisOperation);
+ JAXWSWapperExtension extension = new JAXWSWapperExtension();
+ Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
+ CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+ configuration.setOutputLanguage("jax-ws");
+ configuration.setParametersWrapped(false);
+ configuration.addAxisService(service);
+ extension.engage(configuration);
+
+ }
+
+ @Test
+ public void testWalkSchema() throws Exception{
+ JAXWSWapperExtension extension = new JAXWSWapperExtension();
+ Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
+ CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+ configuration.setOutputLanguage("jax-ws");
+ configuration.setParametersWrapped(false);
+ configuration.addAxisService(service);
+ assertTrue(extension.walkSchema(axisMessage, "test"));
+ }
+}
Propchange: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java Wed Jun 13 06:32:40 2012
@@ -0,0 +1,61 @@
+/*
+ * 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.axis2.wsdl.codegen.extension;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.util.CommandLineOption;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.junit.Test;
+
+public class WSDLValidatorExtensionTest extends XMLSchemaTest {
+
+ @Test
+ public void testWSDLValidation() throws Exception {
+ XmlSchema schema = loadSingleSchemaFile(SampleSchemasDirectory + "schemaIncludes.xsd");
+ if (schema.getIncludes().getCount() != 0 && schema.getElements().getCount() == 0
+ && schema.getSchemaTypes().getCount() == 0 && schema.getGroups().getCount() == 0
+ && schema.getTargetNamespace() == null) {
+ try {
+ AxisService service = new AxisService();
+ ArrayList<XmlSchema> list = new ArrayList<XmlSchema>();
+ Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
+ list.add(schema);
+ service.addSchema(list);
+ CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+ configuration.addAxisService(service);
+ WSDLValidatorExtension extension = new WSDLValidatorExtension();
+
+ extension.engage(configuration);
+ fail("No exception caught!");
+ } catch (Exception e) {
+ assertEquals(e.getClass(), CodeGenerationException.class);
+ }
+ }
+ }
+
+}
Propchange: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGeneratorTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGeneratorTest.java?rev=1349654&r1=1349653&r2=1349654&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGeneratorTest.java (original)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGeneratorTest.java Wed Jun 13 06:32:40 2012
@@ -19,16 +19,85 @@
package org.apache.axis2.wsdl.codegen.schema;
-import junit.framework.TestCase;
-import org.apache.axis2.namespace.Constants;
-
-import javax.xml.namespace.QName;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.client.OperationClient;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.description.AxisMessage;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.namespace.Constants;
+import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.junit.Test;
+
+public class AxisServiceTopElementSchemaGeneratorTest extends XMLSchemaTest {
+
+
+ private AxisService service;
+ private ArrayList<XmlSchema> schemas;
+ private AxisServiceTopElementSchemaGenerator generator;
+ private Map schemaMap;
+ private Set topElements;
+
+ @Override
+ protected void setUp() throws Exception {
+ service = new AxisService();
+ schemas = new ArrayList<XmlSchema>();
+ loadSampleSchemaFile(schemas);
+ service.addSchema(schemas);
+ generator = new AxisServiceTopElementSchemaGenerator(null);
+
+ topElements = new HashSet();
+
+ TopElement topElement;
+
+ topElement = new TopElement(new QName("http://test.com", "testElement1"));
+ topElements.add(topElement);
+ topElement = new TopElement(new QName("http://test1.com", "testElement2"));
+ topElements.add(topElement);
+ topElement = new TopElement(new QName("http://test1.com", "testElement3"));
+ topElement.setTypeQName(new QName(Constants.URI_2001_SCHEMA_XSD, "string"));
+ topElements.add(topElement);
+
+ topElement = new TopElement(new QName("http://test1.com", "testElement4"));
+ topElement.setTypeQName(new QName("http://test1.com", "testComplexType1"));
+ topElements.add(topElement);
+
+ topElement = new TopElement(new QName("http://test1.com", "testElement5"));
+ topElement.setTypeQName(new QName("http://test.com", "testComplexType2"));
+ topElements.add(topElement);
+
+ topElement = new TopElement(new QName("http://test.com", "testElement6"));
+ topElement.setTypeQName(new QName("http://test2.com", "testComplexType2"));
+ topElements.add(topElement);
+
+ schemaMap = generator.getSchemaMap(topElements);
+ generator.getXmlSchemaList(schemaMap);
+
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ service = null;
+ generator = null;
+ schemaMap.clear();
+ topElements = null;
+ super.tearDown();
+ }
-public class AxisServiceTopElementSchemaGeneratorTest extends TestCase {
public void testSchemaGeneration() throws Exception {
@@ -66,4 +135,139 @@ public class AxisServiceTopElementSchema
// ((org.apache.ws.commons.schema.XmlSchema)aXmlSchemaList).write(System.out);
// }
}
+
+ @Test
+ public void testGetSchemaMap(){
+ schemaMap = generator.getSchemaMap(topElements);
+ org.apache.axis2.wsdl.codegen.schema.XmlSchema schema=(org.apache.axis2.wsdl.codegen.schema.XmlSchema)schemaMap.get("http://test.com");
+ TopElement topElement = new TopElement(new QName("http://test.com", "testElement1"));
+ assertTrue(schemaMap.size()==3);
+ assertEquals(schema.getTargetNamespace(), "http://test.com");
+ }
+
+ @Test
+ public void testGetTopElements() throws Exception {
+ AxisOperation axisOperation = new AxisOperation() {
+
+ @Override
+ public void setRemainingPhasesInFlow(ArrayList list) {
+ }
+
+ @Override
+ public void setPhasesOutFlow(ArrayList list) {
+ }
+
+ @Override
+ public AxisService getAxisService() {
+ return service;
+ }
+
+ @Override
+ public void setPhasesOutFaultFlow(ArrayList list) {
+
+ }
+
+ @Override
+ public void setPhasesInFaultFlow(ArrayList list) {
+ }
+
+ @Override
+ public ArrayList getRemainingPhasesInFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesOutFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesOutFaultFlow() {
+ return null;
+ }
+
+ @Override
+ public ArrayList getPhasesInFaultFlow() {
+ return null;
+ }
+
+ @Override
+ public AxisMessage getMessage(String label) {
+ return null;
+ }
+
+ @Override
+ public OperationClient createClient(ServiceContext sc, Options options) {
+ return null;
+ }
+
+ @Override
+ public void addMessageContext(MessageContext msgContext, OperationContext opContext)
+ throws AxisFault {
+ }
+
+ @Override
+ public void addMessage(AxisMessage message, String label) {
+ }
+
+ @Override
+ public void addFaultMessageContext(MessageContext msgContext, OperationContext opContext)
+ throws AxisFault {
+
+ }
+ };
+ axisOperation.setName(new QName("http://www.w3schools.com", "tset"));
+ AxisMessage axisMessage = new AxisMessage();
+ axisMessage.setParent(axisOperation);
+ axisMessage.setElementQName(new QName("http://www.w3schools.com", "note"));
+ axisOperation.addChild("message",axisMessage);
+ service.addOperation(axisOperation);
+ generator = new AxisServiceTopElementSchemaGenerator(service);
+ Set set=generator.getTopElements();
+ boolean found=false;
+ TopElement element=null;
+ for (Object object : set) {
+ element=(TopElement)object;
+ if(element.getElementQName().equals(new QName("http://www.w3schools.com", "note"))){
+ found=true;
+ }
+ }
+ assertTrue(found);
+ }
+
+ @Test
+ public void testGetSchemaElement() throws Exception {
+ generator = new AxisServiceTopElementSchemaGenerator(service);
+ XmlSchemaElement element=generator.getSchemaElement(new QName("http://www.w3schools.com","note"));
+ assertNotNull(element);
+ assertEquals(element.getName(), "note");
+
+ }
+
+ @Test
+ public void testGetXmlSchemaList() throws Exception {
+ Map map = generator.getSchemaMap(topElements);
+ List xmlSchemaList = generator.getXmlSchemaList(map);
+ int i = 0;
+ for (Object object : xmlSchemaList) {
+ i++;
+ XmlSchema schema = (XmlSchema) object;
+ // compare with initially generated ones
+ String s = schemaToString(schema);
+ s=s.replaceAll("<xsd:element name=\"testElement6\" type=\".*:testComplexType2\"/>",
+ "<xsd:element name=\"testElement6\" type=\"ns0:testComplexType2\"/>");
+
+ s=s.replaceAll("<xsd:element name=\"testElement5\" type=\".*:testComplexType2\"/>",
+ "<xsd:element name=\"testElement5\" type=\"ns1:testComplexType2\"/>");
+
+ String s1=readXMLfromSchemaFile(customDirectoryLocation + "generatedSchema" + i + ".xsd");
+
+ assertNotNull(s);
+
+
+ }
+ }
+
+
+
}
Added: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java?rev=1349654&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java (added)
+++ axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java Wed Jun 13 06:32:40 2012
@@ -0,0 +1,53 @@
+/*
+ * 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.axis2.wsdl.codegen.writer;
+
+import java.io.File;
+
+import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.junit.Test;
+
+public class SchemaWriterTest extends XMLSchemaTest{
+ private SchemaWriter writer;
+
+
+ @Override
+ protected void setUp() throws Exception {
+ writer=new SchemaWriter(new File(customDirectoryLocation));
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ writer=null;
+ super.tearDown();
+ }
+
+ @Test
+ public void testWriteSchema() throws Exception{
+ XmlSchema schema=loadSingleSchemaFile(1);
+ writer.writeSchema(schema, "generated.xsd");
+ String s1=readXMLfromSchemaFile(customDirectoryLocation+"generated.xsd");
+ String s2=readXMLfromSchemaFile(customDirectoryLocation+"sampleSchema1.xsd");
+ assertSimilarXML(s1, s2);
+
+ }
+}
Propchange: axis/axis2/java/core/trunk/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java
------------------------------------------------------------------------------
svn:eol-style = native