<?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.
  -->

<project name="adb-codegen-test-source-generate" default="main" basedir=".">
	<description>
        Generate source code for tests...
    </description>

	<target name="main">

		<property name="compiled.classes.dir" value="target/classes"/>
		<!-- Theres got to be a better way to do this -->
		<property name="schema.source.dir" value="test-resources/xsd"/>
		<property name="testsuite.source.dir" value="test-resources/testsuite"/>
		<property name="schema.output.base.dir" value="target/schema"/>
		<property name="schema.generated.src.dir" value="${schema.output.base.dir}/src"/>
		<property name="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 -->
		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
			<jvmarg line="${maven.junit.jvmargs}"/>
			<classpath refid="maven.dependency.classpath"/>
			<classpath location="${compiled.classes.dir}"/>
			<arg file="${schema.source.dir}/simple_maxOccurs2.xsd"/>
			<arg file="${schema.source.dir}/anonymous_complexType.xsd"/>
			<arg file="${schema.source.dir}/simple_choice.xsd"/>
			<arg file="${schema.source.dir}/simple_particle_all.xsd"/>
			<arg file="${schema.source.dir}/simple_maxOccurs.xsd"/>
			<arg file="${schema.source.dir}/simple_anytype.xsd"/>
			<arg file="${schema.source.dir}/simple-minoccurs0.xsd"/>
			<arg file="${schema.source.dir}/complex-minoccurs0.xsd"/>
			<arg file="${schema.source.dir}/simple-recursive-datatypes.xsd"/>
			<arg file="${schema.source.dir}/mixed_minoccus0.xsd"/>
			<arg file="${schema.source.dir}/simple/simpleType-All.xsd"/>
			<arg file="${schema.source.dir}/derived/derivedType-All.xsd"/>
			<arg file="${testsuite.source.dir}/testsuite.xsd"/>
			<arg file="${testsuite.source.dir}/extensions.xsd"/>
			<arg file="${testsuite.source.dir}/union.xsd"/>
			<arg file="${testsuite.source.dir}/all.xsd"/>
			<arg file="${testsuite.source.dir}/enumeration.xsd"/>
			<arg file="${testsuite.source.dir}/restrictions.xsd"/>
			<arg file="${testsuite.source.dir}/choice.xsd"/>
			<arg file="${testsuite.source.dir}/list.xsd"/>
			<arg file="${testsuite.source.dir}/references.xsd"/>
			<arg file="${testsuite.source.dir}/innerchoice.xsd"/>
			<arg file="${testsuite.source.dir}/attribute.xsd"/>
			<arg file="${testsuite.source.dir}/boolean.xsd"/>
			<arg file="${testsuite.source.dir}/particlemaxoccurs.xsd"/>
			<arg file="${testsuite.source.dir}/innerParticles.xsd"/>
			<arg file="${testsuite.source.dir}/default_namespaces.xsd"/>
			<arg file="${testsuite.source.dir}/groups.xsd"/>
			<arg file="${testsuite.source.dir}/base64binary.xsd"/>
			<arg file="${testsuite.source.dir}/abstract.xsd"/>
			<arg file="${testsuite.source.dir}/decimal.xsd"/>
			<arg file="${testsuite.source.dir}/anytype.xsd"/>
			<arg file="${testsuite.source.dir}/innerParticleExtension.xsd"/>
			<arg file="${testsuite.source.dir}/union2.xsd"/>
			<arg file="${testsuite.source.dir}/default_value.xsd"/>
			<arg file="${testsuite.source.dir}/complexExtension.xsd"/>
			<arg file="${testsuite.source.dir}/soapencoding.xsd"/>
			<arg file="${testsuite.source.dir}/chameleon.xsd"/>
			<arg file="${testsuite.source.dir}/nonamespace.xsd"/> <!-- compile only; no tests -->
			<arg file="${testsuite.source.dir}/unqualified.xsd"/>
			<arg file="${testsuite.source.dir}/unqualified/companyservice.xsd"/>
			<arg file="${testsuite.source.dir}/names.xsd"/> <!-- compile only; no tests -->
			<arg file="${testsuite.source.dir}/std-schemas.xsd"/> <!-- compile only; no tests -->
			<arg file="${schema.source.dir}/fixed_value.xsd"/>
			<arg file="${schema.generated.src.dir}"/>
		</java>
		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
			<jvmarg line="${maven.junit.jvmargs}"/>
			<classpath refid="maven.dependency.classpath"/>
			<classpath location="${compiled.classes.dir}"/>
			<arg value="-dp"/>
			<arg value="org.apache.axis2.schema.nonamespace"/>
			<arg value="-mp"/>
			<arg value="org.apache.axis2.schema.nonamespace"/>
			<arg file="${testsuite.source.dir}/nonamespace.xsd"/>
			<arg file="${schema.generated.src.dir}"/>
		</java>
		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
			<jvmarg line="${maven.junit.jvmargs}"/>
			<classpath refid="maven.dependency.classpath"/>
			<classpath location="${compiled.classes.dir}"/>
			<arg value="-p"/>
			<arg value="helper."/>
			<arg value="-h"/>
			<arg file="${testsuite.source.dir}/testsuite.xsd"/>
			<arg file="${testsuite.source.dir}/all.xsd"/>
			<arg file="${testsuite.source.dir}/boolean.xsd"/>
			<arg file="${testsuite.source.dir}/chameleon.xsd"/>
			<arg file="${testsuite.source.dir}/choice.xsd"/>
			<arg file="${testsuite.source.dir}/decimal.xsd"/>
			<arg file="${testsuite.source.dir}/default_value.xsd"/>
			<arg file="${testsuite.source.dir}/enumeration.xsd"/>
			<arg file="${testsuite.source.dir}/groups.xsd"/>
			<arg file="${testsuite.source.dir}/innerchoice.xsd"/>
			<arg file="${testsuite.source.dir}/innerParticleExtension.xsd"/>
			<arg file="${testsuite.source.dir}/unqualified.xsd"/>
			<arg file="${testsuite.source.dir}/unqualified/companyservice.xsd"/>
			<arg file="${testsuite.source.dir}/names.xsd"/> <!-- compile only; no tests -->
			<arg file="${schema.generated.src.dir}"/>
		</java>
    </target>

</project>
