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 2006/04/27 12:14:51 UTC
svn commit: r397505 - in /webservices/axis2/trunk/java/modules/codegen:
maven.xml test-resources/xsd/simple-recursive-datatypes.xsd
test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
Author: ajith
Date: Thu Apr 27 03:14:48 2006
New Revision: 397505
URL: http://svn.apache.org/viewcvs?rev=397505&view=rev
Log:
Adding a test case to test recursive XML population
e.g.
<E> <E> test </E> </E>
1. Added the simple-recursive-datatypes.xsd
2. Added the PopulateRecursiveTest.java - the junit test case
3. Updated the maven.xml to compile the schema before running the tests
Added:
webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple-recursive-datatypes.xsd
webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
Modified:
webservices/axis2/trunk/java/modules/codegen/maven.xml
Modified: webservices/axis2/trunk/java/modules/codegen/maven.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/maven.xml?rev=397505&r1=397504&r2=397505&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/codegen/maven.xml Thu Apr 27 03:14:48 2006
@@ -111,6 +111,14 @@
<arg file="${schema.generated.src.dir}"/>
</java>
+ <ant:echo>Compiling simple-recursive-datatypes.xsd</ant:echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${schema.source.dir}/simple-recursive-datatypes.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
<!-- ################################################################### -->
<!-- All simple primitive types xsd -->
<java classname="org.apache.axis2.schema.XSD2Java" fork="true">
Added: webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple-recursive-datatypes.xsd
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple-recursive-datatypes.xsd?rev=397505&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple-recursive-datatypes.xsd (added)
+++ webservices/axis2/trunk/java/modules/codegen/test-resources/xsd/simple-recursive-datatypes.xsd Thu Apr 27 03:14:48 2006
@@ -0,0 +1,12 @@
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://recursion.org"
+ targetNamespace="http://recursion.org"
+ elementFormDefault="qualified">
+ <complexType name="TypeE">
+ <sequence>
+ <element name="E" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <element name="E" type="tns:TypeE"/>
+</schema>
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java?rev=397505&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java Thu Apr 27 03:14:48 2006
@@ -0,0 +1,76 @@
+package org.apache.axis2.schema.populate.other;
+
+import junit.framework.TestCase;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.beans.Introspector;
+import java.beans.BeanInfo;
+import java.io.ByteArrayInputStream;
+/*
+ * 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 PopulateRecursiveTest extends TestCase {
+
+// all are present
+ private String xmlString1 = "<E xmlns=\"http://recursion.org\">" +
+ "<E>test</E>" +
+ "</E>";
+
+
+
+
+ public void testPopulate1() throws Exception {
+ populateAndAssert(xmlString1);
+ }
+
+
+ private void populateAndAssert(String s
+ ) throws XMLStreamException, ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, IntrospectionException {
+ XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(s.getBytes()));
+ Class clazz = Class.forName("org.recursion.E");
+ Class innerClazz = clazz.getDeclaredClasses()[0];
+ Method parseMethod = innerClazz.getMethod("parse", new Class[]{XMLStreamReader.class});
+ Object obj = parseMethod.invoke(null, new Object[]{reader});
+
+ assertNotNull(obj);
+
+ Object eObject = 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 ("e".equals(propertyDescriptor.getDisplayName())) {
+ readMethod = propertyDescriptor.getReadMethod();
+ eObject = readMethod.invoke(obj, null);
+
+ assertNotNull(eObject);
+
+ assertTrue(eObject.getClass().equals(Class.forName("org.recursion.TypeE")) );
+ }
+ }
+ }
+
+
+
+}