You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by aj...@apache.org on 2005/10/25 06:29:56 UTC

svn commit: r328254 - in /webservices/axis2/trunk/java/modules/codegen: ./ src/org/apache/axis2/databinding/schema/ test-resources/xsd/ test/org/apache/axis2/databinding/schema/ test/org/apache/axis2/databinding/schema/compile/ test/org/apache/axis2/da...

Author: ajith
Date: Mon Oct 24 21:28:50 2005
New Revision: 328254

URL: http://svn.apache.org/viewcvs?rev=328254&view=rev
Log:
1. Added a new post goal to the maven build that generates schemas
2. Added some test cases (based on reflection) to populate the generated beans
3. Refactored some test cases

Added:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/XSD2Java.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AbstractSchemaCompilerTester.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AbstractSchemaCompilerTester.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AnonymousComplexTypeTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AnonymousComplexTypeTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/ComplexAllTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexAllTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyAttribTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyAttribTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAttributeTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAttributeTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleElementTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequence2Test.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequence2Test.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequenceTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequenceTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlMaxOccurs2Test.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlMaxOccurs2Test.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlmaxOccursTest.java
      - copied, changed from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlmaxOccursTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateAnonComplexTypeTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayInArrayTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayTest.java
Removed:
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AnonymousComplexTypeTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexAllTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyAttribTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAttributeTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequence2Test.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequenceTest.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlMaxOccurs2Test.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlmaxOccursTest.java
Modified:
    webservices/axis2/trunk/java/modules/codegen/maven.xml
    webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/anonymous_complexType.xsd
    webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_maxOccurs.xsd

Modified: webservices/axis2/trunk/java/modules/codegen/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/maven.xml?rev=328254&r1=328253&r2=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/codegen/maven.xml Mon Oct 24 21:28:50 2005
@@ -8,10 +8,55 @@
     xmlns:maven="jelly:maven"
     xmlns:deploy="deploy"
     xmlns:ant="jelly:ant">
+
     <preGoal name="itest:compile">
         <u:file var="file" name="${maven.itest.src}"/>
         <j:if test="${!file.exists()}">
             <j:expr value="${context.setVariable('maven.itest.skip', 'true')}"/>
         </j:if>
     </preGoal>
+
+     <!-- run the schema compiler -->
+   <postGoal name="test:compile">
+        <j:set var="compiled.classes.dir" value="target/classes"/>   <!-- Theres got to be a better way to do this -->
+        <j:set var="schema.source.dir" value="test-resources/xsd"/>
+        <j:set var="schema.output.base.dir" value="target/schema"/>
+        <j:set var="schema.generated.src.dir" value="${schema.output.base.dir}/src"/>
+        <j:set var="schema.generated.classes.dir" value="${schema.output.base.dir}/classes"/>
+        <!-- make the dirs -->
+        <mkdir dir="${schema.output.base.dir}"/>
+        <mkdir dir="${schema.generated.src.dir}"/>
+        <mkdir dir="${schema.generated.classes.dir}"/>
+       <!-- Run schema compiler with designated schemas -->
+       <!-- simple max occurs 2 xsd -->
+        <java classname="org.apache.axis2.databinding.schema.XSD2Java" fork="true">
+			<classpath refid="maven.dependency.classpath"/>
+			<classpath location="${compiled.classes.dir}"/>
+            <arg file="${schema.source.dir}/simple_maxOccurs2.xsd"/>
+            <arg file="${schema.generated.src.dir}"/>
+        </java>
+         <!-- anon complex type xsd -->
+        <java classname="org.apache.axis2.databinding.schema.XSD2Java" fork="true">
+			<classpath refid="maven.dependency.classpath"/>
+			<classpath location="${compiled.classes.dir}"/>
+            <arg file="${schema.source.dir}/anonymous_complexType.xsd"/>
+            <arg file="${schema.generated.src.dir}"/>
+        </java>
+        <!-- simple max occurs xsd -->
+        <java classname="org.apache.axis2.databinding.schema.XSD2Java" fork="true">
+			<classpath refid="maven.dependency.classpath"/>
+			<classpath location="${compiled.classes.dir}"/>
+            <arg file="${schema.source.dir}/simple_maxOccurs.xsd"/>
+            <arg file="${schema.generated.src.dir}"/>
+        </java>
+       <!-- Compile the generated classes -->
+        <javac destdir="${schema.generated.classes.dir}" srcdir="${schema.generated.src.dir}">
+            <classpath refid="maven.dependency.classpath"></classpath>
+            <classpath location="${compiled.classes.dir}"></classpath>
+        </javac>
+
+        <ant:path id="schema.generated.classes.dir" location="${schema.generated.classes.dir}"/>
+        <maven:addPath id="maven.dependency.classpath" refid="schema.generated.classes.dir"/>
+    </postGoal>
+
 </project>

Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/XSD2Java.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/XSD2Java.java?rev=328254&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/XSD2Java.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/XSD2Java.java Mon Oct 24 21:28:50 2005
@@ -0,0 +1,79 @@
+package org.apache.axis2.databinding.schema;
+
+import org.w3c.dom.Document;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class XSD2Java {
+    //for now the arguments this main method accepts is the source schema and the output
+    //location
+    public static void main(String[] args) {
+        //todo do some validation here
+        compile(args[0],args[1]);
+    }
+
+    /**
+     *
+     * @param xsdName
+     * @param outputLocation
+     */
+    private static void compile(String xsdName,String outputLocation) {
+        try {
+            //load the current Schema through a file
+            //first read the file into a DOM
+            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+            documentBuilderFactory.setNamespaceAware(true);
+
+            DocumentBuilder builder =  documentBuilderFactory.newDocumentBuilder();
+            Document doc = builder.parse(new File(xsdName));
+
+            //now read it to a schema
+            XmlSchemaCollection schemaCol =  new XmlSchemaCollection();
+            XmlSchema currentSchema = schemaCol.read(doc,null);
+
+            File outputFolder = new File(outputLocation);
+            if (outputFolder.exists()){
+                if (outputFolder.isFile())  {
+                    throw new IOException("specified location is a folder!");
+                }
+            }else{
+                outputFolder.mkdirs();
+            }
+
+            SchemaCompiler compiler = new SchemaCompiler(new CompilerOptions().setOutputLocation(
+                    outputFolder));
+            compiler.compile(currentSchema);
+
+        } catch (ParserConfigurationException e) {
+            e.printStackTrace();
+        } catch (SAXException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (SchemaCompilationException e) {
+            e.printStackTrace();
+        }
+    }
+}

Modified: webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/anonymous_complexType.xsd
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/anonymous_complexType.xsd?rev=328254&r1=328253&r2=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/anonymous_complexType.xsd (original)
+++ webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/anonymous_complexType.xsd Mon Oct 24 21:28:50 2005
@@ -1,9 +1,7 @@
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-        xmlns:tns="http://soapinterop.org/types"
-        targetNamespace="http://soapinterop.org/types">
-    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
-
+        xmlns:tns="http://soapinterop.org1/types"
+        targetNamespace="http://soapinterop.org1/types">
     <element name="tempElt">
         <complexType>
             <sequence>

Modified: webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_maxOccurs.xsd
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_maxOccurs.xsd?rev=328254&r1=328253&r2=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_maxOccurs.xsd (original)
+++ webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple_maxOccurs.xsd Mon Oct 24 21:28:50 2005
@@ -1,8 +1,7 @@
-<schema targetNamespace="http://soapinterop.org/xsd"
+<schema targetNamespace="http://soapinterop.org2/xsd"
         xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-        xmlns:xsd1="http://soapinterop.org/xsd"
+        xmlns:xsd1="http://soapinterop.org2/xsd"
         elementFormDefault="qualified">
     <complexType name="SOAPStruct">
         <sequence>

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AbstractSchemaCompilerTester.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AbstractSchemaCompilerTester.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AbstractSchemaCompilerTester.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AbstractSchemaCompilerTester.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AbstractSchemaCompilerTester.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AbstractSchemaCompilerTester.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AbstractSchemaCompilerTester.java Mon Oct 24 21:28:50 2005
@@ -1,8 +1,10 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
 
 import junit.framework.TestCase;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.axis2.databinding.schema.SchemaCompiler;
+import org.apache.axis2.databinding.schema.CompilerOptions;
 import org.w3c.dom.Document;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -66,6 +68,7 @@
     public void testSchema() throws Exception{
         SchemaCompiler compiler = new SchemaCompiler( new CompilerOptions().setOutputLocation(outputFolder));
         compiler.compile(currentSchema);
+       
     }
 
     protected void tearDown() throws Exception {

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AnonymousComplexTypeTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AnonymousComplexTypeTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AnonymousComplexTypeTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AnonymousComplexTypeTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AnonymousComplexTypeTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AnonymousComplexTypeTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/AnonymousComplexTypeTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class AnonymousComplexTypeTest extends AbstractSchemaCompilerTester{
+public class AnonymousComplexTypeTest extends AbstractSchemaCompilerTester {
     protected void setUp() throws Exception {
         this.fileName = "test-resources/xsd/anonymous_complexType.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/ComplexAllTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexAllTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/ComplexAllTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/ComplexAllTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexAllTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/ComplexAllTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/ComplexAllTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class ComplexAllTest extends AbstractSchemaCompilerTester{
+public class ComplexAllTest extends AbstractSchemaCompilerTester {
      protected void setUp() throws Exception {
          this.fileName = "test-resources/xsd/complex_all.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyAttribTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyAttribTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyAttribTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyAttribTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyAttribTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyAttribTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyAttribTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class SimpleAnyAttribTest extends AbstractSchemaCompilerTester{
+public class SimpleAnyAttribTest extends AbstractSchemaCompilerTester {
       protected void setUp() throws Exception {
          this.fileName = "test-resources/xsd/simple_any_attribute.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAnyTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAnyTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class SimpleAnyTest extends AbstractSchemaCompilerTester{
+public class SimpleAnyTest extends AbstractSchemaCompilerTester {
     protected void setUp() throws Exception {
          this.fileName = "test-resources/xsd/simple_any.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAttributeTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAttributeTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAttributeTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAttributeTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAttributeTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleAttributeTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleAttributeTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class SimpleAttributeTest extends AbstractSchemaCompilerTester{
+public class SimpleAttributeTest extends AbstractSchemaCompilerTester {
 
     protected void setUp() throws Exception {
         this.fileName = "test-resources/xsd/simple_attrib.xsd";

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleElementTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleElementTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleElementTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleElementTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleElementTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequence2Test.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequence2Test.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequence2Test.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequence2Test.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequence2Test.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequence2Test.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequence2Test.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class SimpleSequence2Test extends AbstractSchemaCompilerTester{
+public class SimpleSequence2Test extends AbstractSchemaCompilerTester {
      protected void setUp() throws Exception {
         this.fileName = "test-resources/xsd/simple_sequence_2.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequenceTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequenceTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequenceTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequenceTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequenceTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/SimpleSequenceTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/SimpleSequenceTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlMaxOccurs2Test.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlMaxOccurs2Test.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlMaxOccurs2Test.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlMaxOccurs2Test.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlMaxOccurs2Test.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlMaxOccurs2Test.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlMaxOccurs2Test.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class XmlMaxOccurs2Test extends AbstractSchemaCompilerTester{
+public class XmlMaxOccurs2Test extends AbstractSchemaCompilerTester {
     protected void setUp() throws Exception {
         this.fileName = "test-resources/xsd/simple_maxOccurs2.xsd";
         super.setUp();

Copied: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlmaxOccursTest.java (from r326859, webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlmaxOccursTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlmaxOccursTest.java?p2=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlmaxOccursTest.java&p1=webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlmaxOccursTest.java&r1=326859&r2=328254&rev=328254&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/XmlmaxOccursTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/compile/XmlmaxOccursTest.java Mon Oct 24 21:28:50 2005
@@ -1,4 +1,6 @@
-package org.apache.axis2.databinding.schema;
+package org.apache.axis2.databinding.schema.compile;
+
+import org.apache.axis2.databinding.schema.compile.AbstractSchemaCompilerTester;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -15,7 +17,7 @@
  * limitations under the License.
  */
 
-public class XmlmaxOccursTest extends AbstractSchemaCompilerTester{
+public class XmlmaxOccursTest extends AbstractSchemaCompilerTester {
        protected void setUp() throws Exception {
         this.fileName = "test-resources/xsd/simple_maxOccurs.xsd";
         super.setUp();

Added: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateAnonComplexTypeTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateAnonComplexTypeTest.java?rev=328254&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateAnonComplexTypeTest.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateAnonComplexTypeTest.java Mon Oct 24 21:28:50 2005
@@ -0,0 +1,70 @@
+package org.apache.axis2.databinding.schema.populate;
+
+import junit.framework.TestCase;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.namespace.QName;
+import java.io.ByteArrayInputStream;
+import java.lang.reflect.Method;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class PopulateAnonComplexTypeTest extends TestCase {
+    private String xmlString = "<tempElt>" +
+            "<varInt>5</varInt>" +
+            "<varString>Hello</varString>" +
+            "<varFloat>3.3</varFloat>" +
+            "</tempElt>";
+
+    public void testPopulate() throws Exception{
+
+        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes()));
+        Class clazz = Class.forName("org1.soapinterop.tempElt");
+        Method parseMethod = clazz.getMethod("parse",new Class[]{XMLStreamReader.class});
+        Object obj = parseMethod.invoke(null,new Object[]{reader});
+
+
+        BeanInfo beanInfo =  Introspector.getBeanInfo(obj.getClass());
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        Method readMethod;
+        for (int i = 0; i < propertyDescriptors.length; i++) {
+            PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
+            if ("varInt".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertEquals(new Integer(5),readMethod.invoke(obj,null));
+            } else if ("varFloat".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertEquals(new Float(3.3),readMethod.invoke(obj,null));
+            }  else if ("varString".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertEquals("Hello",readMethod.invoke(obj,null));
+            }
+
+        }
+
+    }
+
+
+
+}
+

Added: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayInArrayTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayInArrayTest.java?rev=328254&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayInArrayTest.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayInArrayTest.java Mon Oct 24 21:28:50 2005
@@ -0,0 +1,93 @@
+package org.apache.axis2.databinding.schema.populate;
+
+import junit.framework.TestCase;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.namespace.QName;
+
+
+
+import java.io.ByteArrayInputStream;
+import java.beans.Introspector;
+import java.beans.BeanInfo;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.lang.reflect.Array;
+import java.util.Arrays;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class PopulateArrayInArrayTest extends TestCase{
+    private String xmlString = "<myobject>" +
+            "<soapStructures>" +
+            "<varFloat>3.3</varFloat>" +
+            "<varInt>5</varInt>" +
+            "<varString>Hello11</varString>" +
+            "<varString>Hello11</varString>" +
+            "<varString>Hello12</varString>" +
+            "<varString>Hello13</varString>" +
+            "</soapStructures>" +
+            "<soapStructures>" +
+            "<varFloat>3.31</varFloat>" +
+            "<varInt>51</varInt>" +
+            "<varString>Hello21</varString>" +
+            "<varString>Hello21</varString>" +
+            "<varString>Hello22</varString>" +
+            "<varString>Hello23</varString>" +
+            "</soapStructures>" +
+            "</myobject>";
+
+    public void testPopulate() throws Exception{
+
+            XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes()));
+            Class clazz = Class.forName("org.soapinterop.myobject");
+            Method parseMethod = clazz.getMethod("parse",new Class[]{XMLStreamReader.class});
+            Object obj = parseMethod.invoke(null,new Object[]{reader});
+
+
+            Object myObject = null ;
+            BeanInfo beanInfo =  Introspector.getBeanInfo(obj.getClass());
+            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+            for (int i = 0; i < propertyDescriptors.length; i++) {
+                PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
+                if ("myobject".equals(propertyDescriptor.getDisplayName())){
+                    Method readMethod = propertyDescriptor.getReadMethod();
+                    myObject = readMethod.invoke(obj,new Object[]{});
+                    break;
+                }
+
+
+            }
+
+            assertNotNull(myObject);
+
+//            int length = Array.getLength(myObject);
+//            for (int i = 0; i < length; i++) {
+//                System.out.println(Array.get(myObject,i));
+//
+//            }
+
+
+
+
+
+    }
+
+
+
+}

Added: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayTest.java?rev=328254&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayTest.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/populate/PopulateArrayTest.java Mon Oct 24 21:28:50 2005
@@ -0,0 +1,87 @@
+package org.apache.axis2.databinding.schema.populate;
+
+import junit.framework.TestCase;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLInputFactory;
+import java.io.ByteArrayInputStream;
+import java.lang.reflect.Method;
+import java.lang.reflect.Array;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+public class PopulateArrayTest extends TestCase {
+    private String xmlString = "<myobject>" +
+            "<varFloat>3.3</varFloat>" +
+            "<varInt>5</varInt>" +
+            "<varString>Hello</varString>" +
+            "<varString>Hello2</varString>" +
+            "<varString>Hello3</varString>" +
+            "</myobject>";
+
+    public void testPopulate() throws Exception{
+
+        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes()));
+        Class clazz = Class.forName("org2.soapinterop.myobject");
+        Method parseMethod = clazz.getMethod("parse",new Class[]{XMLStreamReader.class});
+        Object obj = parseMethod.invoke(null,new Object[]{reader});
+
+        Object soapStruct = null;
+        BeanInfo beanInfo =  Introspector.getBeanInfo(obj.getClass());
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        Method readMethod;
+        for (int i = 0; i < propertyDescriptors.length; i++) {
+            PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
+            if ("myobject".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                soapStruct = readMethod.invoke(obj,null);
+                break;
+            }
+        }
+
+        assertNotNull(soapStruct);
+
+        BeanInfo structBeanInfo =  Introspector.getBeanInfo(soapStruct.getClass());
+        PropertyDescriptor[] structPropertyDescriptors = structBeanInfo.getPropertyDescriptors();
+        for (int i = 0; i < structPropertyDescriptors.length; i++) {
+            PropertyDescriptor propertyDescriptor = structPropertyDescriptors[i];
+            if ("varInt".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertEquals("varInt is not properly set",new Integer(5),readMethod.invoke(soapStruct,null));
+            } else if ("varFloat".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertEquals("varFloat is not properly set",new Float(3.3),readMethod.invoke(soapStruct,null));
+            }  else if ("varString".equals(propertyDescriptor.getDisplayName())){
+                readMethod = propertyDescriptor.getReadMethod();
+                assertTrue("String array is not set",readMethod.getReturnType().isArray());
+                Object array = readMethod.invoke(soapStruct, null);
+                int length = Array.getLength(array);
+                assertEquals("Array length is not correct",length,3);
+
+                //check the items here
+            }
+
+        }
+
+
+    }
+
+
+
+}