<project basedir="." default="help">

    <!--Set your elcipse home directory  -->
    <property environment="env" />
    <property name="eclipse.home" value="${env.ECLIPSE_HOME}"></property>
	
    <!-- properties file to load the versions of dependencies -->
    <property file="../../../etc/project.properties"/>
    <property name="codegen.plugin.version" value="Axis2_Codegen_Wizard_1.2.0"></property>
    <property name="codegen.plugin.zip.name" value="axis2-eclipse-codegen-wizard.zip"></property>
	
    <property name="src" value="./src"></property>
    <property name="codegen.src.dir" value="../axis2-eclipse-codegen-plugin/src/main/java"></property>
    <property name="output" value="../target/eclipse_plugins"></property>
    <property name="output.target" value="${output}/release"></property>
    <property name="plugin.output.dir" value="${output}/plugin"></property>
    <property name="codegen.output.dir" value="${output}/code-gen"></property>
    <property name="codegen.plugin.output.dir" value="${plugin.output.dir}/${codegen.plugin.version}"></property>

    <property name="source.dir.name" value="src"></property>
    <property name="lib.dir.name" value="lib"></property>
    <property name="bin.dir.name" value="bin"></property>
    <property name="help.dir.name" value="help"></property>
    <property name="icons.dir.name" value="icons"></property>

    <property name="plugin.project.file.name" value=".project"></property>
    <property name="plugin.classpath.file.name" value=".classpath"></property>
    <property name="plugin.help.file.name" value="help_toc.xml"></property>

    <property name="codegen.resource.dir" value="../conf/codegen"></property>
    <property name="codegen.help.resource.file" value="../../../xdocs/tools/1_1/eclipse/wsdl2java-plugin.html"></property>
    <property name="codegen.help.images.dir" value="../../../xdocs/tools/1_1/eclipse/images"></property>
    <property name="axis2.lib.dir" value="../../../target/lib"></property>

    <!--Filter tockens for the copy command to filter the versions of external dependencies -->
     <filter token="version_number" value="${version_number}" />
     <filter token="activation.version" value="${activation.version}" />
     <filter token="annogen.version" value="${annogen.version}" />
     <filter token="ant.version" value="${ant.version}" />
     <filter token="axiom.version" value="${axiom.version}" />
     <filter token="commons.logging.version" value="${commons.logging.version}" />
     <filter token="neethi.version" value="${neethi.version}" />
     <filter token="stax.api.version" value="${stax.api.version}" />
     <filter token="stax.impl.version" value="${stax.impl.version}" />
     <filter token="xbean.version" value="${xbean.version}" />
     <filter token="XmlSchema.version" value="${XmlSchema.version}" />
     <filter token="log4j.version" value="${log4j.version}" />
     <filter token="wsdl4j.version" value="${wsdl4j.version}" />
     <filter token="woden.version" value="${woden.version}" />


     <!--Codegen wizard libraries -->
     <fileset id="codegen.libs" dir="${axis2.lib.dir}">
 		<include name="activation-${activation.version}.jar" />
 		<include name="annogen-${annogen.version}.jar" />
		<include name="ant-${ant.version}.jar" />
		<include name="axiom-api-${axiom.version}.jar" />
		<include name="axiom-dom-${axiom.version}.jar" />
		<include name="axiom-impl-${axiom.version}.jar" />
	        <include name="axis2-${version_number}.jar" />
		<include name="commons-logging-${commons.logging.version}.jar" />
		<include name="log4j-${log4j.version}.jar" />
		<include name="neethi-${neethi.version}.jar" />
		<include name="stax-api-${stax.api.version}.jar" />
		<include name="wsdl4j-${wsdl4j.version}.jar" />
		<include name="wstx-${stax.impl.version}.jar" />
		<include name="xbean-${xbean.version}.jar" />
		<include name="XmlSchema-${XmlSchema.version}.jar" />
		<include name="woden-${woden.version}.jar" />
    </fileset>
	
    <!-- Default target to generate all the services -->
    <target name="all">
    	<antcall target="clean" />
        <antcall target="generate-codegen-plugin"/>
        <antcall target="release-plugin"/>
    </target>

    <!-- init-->
    <target name="init">
        <mkdir dir="${output}"></mkdir>
        <mkdir dir="${codegen.output.dir}"></mkdir>
    </target>

  <!-- Codegen Project -->


          <!-- Generete the Codegen Project that can be imported as a readymade eclipse project in to workspace -->
            <target name="generate-codegen-project">
                <delete file="plugin.xml" />
                <delete file="build.properties" />
                <delete file=".project" />
                <delete file=".classpath" />
                <delete dir="icons" />
                <delete dir="help" />
                <delete dir="lib" />

                <!-- Copy to the same position with the filtering on-->
                <copy todir="." filtering="on" >
                    <fileset dir="${codegen.resource.dir}">
                        <include name="plugin.xml" />
                        <include name="build.properties" />
                        <include name="${plugin.classpath.file.name}" />
                    </fileset>
                </copy>

                <!-- copy the libs -->
                <mkdir dir="${lib.dir.name}" />
                <copy todir="${lib.dir.name}">
                    <fileset refid="codegen.libs" />
                </copy>
                <!-- copy the  icons-->
                <mkdir dir="${icons.dir.name}" />
                <copy todir="${icons.dir.name}">
                        <fileset dir="${codegen.resource.dir}/${icons.dir.name}" />
                </copy>
                <!-- copy the other project files-->
                <copy todir=".">
                        <fileset file="${codegen.resource.dir}/${plugin.project.file.name}" />
                        <fileset file="${codegen.resource.dir}/${plugin.help.file.name}" />
                </copy>

            </target>

    <!--create the codegen project-->
    <target name="create-codegen-project" depends="init">
        <!-- copy the source  -->
        <copy todir="${codegen.output.dir}/${source.dir.name}">
            <fileset dir="${codegen.src.dir}" excludes="**/service/**/*.java"/>
        </copy>
        <!-- Copy the other stuff -->
        <copy todir="${codegen.output.dir}" filtering="on" >
            <fileset dir="${codegen.resource.dir}" excludes="**/*.gif"></fileset>
        </copy>
        <!-- Copy the icons dir -->
        <copy todir="${codegen.output.dir}">
            <fileset dir="${codegen.resource.dir}" includes="**/*.gif"></fileset>
        </copy>
        <!-- create bin directory -->
	    <mkdir dir="${codegen.output.dir}/${bin.dir.name}"></mkdir>
        <!-- create the help directory -->
        <mkdir dir="${codegen.output.dir}/${help.dir.name}"></mkdir>
	    <!-- copy the help directory -->
        <copy todir="${codegen.output.dir}/${help.dir.name}">
            <fileset file="${codegen.help.resource.file}"></fileset>
        </copy>
        <!-- copy the libraries to the plugin-->
        <copy todir="${codegen.output.dir}/${lib.dir.name}">
            <fileset refid="codegen.libs" />
        </copy>
        <available property="images.dir" file="${codegen.help.images.dir}" type="dir" value="${codegen.help.images.dir}"/>
          <copy todir="${codegen.output.dir}/${help.dir.name}/images">
            <fileset dir="${images.dir}"/>
         </copy>

    </target>
    
    <!--Generate the codegen plugin -->	
    <target name="generate-codegen-plugin" depends="create-codegen-project">
        <mkdir dir="${codegen.plugin.output.dir}"></mkdir>
        <!-- copy the plugin.xml and help_toc.xml -->
        <copy todir="${codegen.plugin.output.dir}">
            <fileset dir="${codegen.output.dir}" >
		<include name="plugin.xml" />
		<include name="help_toc.xml" />
		<include name="build.properties" />
		<include name="**/ServiceResources.properties" />
	    </fileset>
        </copy>
        <!-- copy the help directory-->
        <copy todir="${codegen.plugin.output.dir}/help">
            <fileset dir="${codegen.output.dir}/help" />
        </copy>
        <!-- copy the icons directory-->
        <copy todir="${codegen.plugin.output.dir}/icons">
            <fileset dir="${codegen.output.dir}/icons" />
        </copy>
        <!-- copy the libraries to the plugin-->
        <copy todir="${codegen.plugin.output.dir}/${lib.dir.name}">
            <fileset refid="codegen.libs" />
        </copy>
        <!-- copy the sources to the plugin-->
        <copy todir="${codegen.plugin.output.dir}/${source.dir.name}">
	    <fileset dir="${codegen.output.dir}/${source.dir.name}">
		    <include name="org/**" />
            </fileset>
        </copy>

	<!-- compile the plugin java files -->
	<delete dir="${codegen.plugin.output.dir}/class"></delete>
 	<mkdir dir="${codegen.plugin.output.dir}/class"></mkdir>
	<javac srcdir="${codegen.output.dir}/${source.dir.name}" 
               destdir="${codegen.plugin.output.dir}/class" 
               includes="org/apache/axis2/**">
		<classpath>
     			<fileset dir="${codegen.plugin.output.dir}/lib">
        			<include name="**/*.jar" />
     			</fileset>
       			 <fileset dir="${eclipse.home}/plugins/">
				<include name="**/*.jar" />
     			</fileset>
    		</classpath>	
	</javac>
	
	<!--Make available the resources for the plugin -->
        <copy todir="${codegen.plugin.output.dir}/class">
            <fileset dir="${codegen.output.dir}/${source.dir.name}" >
		<include name="**/Codegen.properties" />
		<exclude name="**/*.class" />
	    </fileset>
        </copy>
      
	<!-- create the Axis2CodegenWizard.jar -->
        <jar destfile="${codegen.plugin.output.dir}/Axis2CodegenWizard.jar" 
	       basedir="${codegen.plugin.output.dir}/class"
           includes="org/apache/**"
          />
	<delete dir="${codegen.plugin.output.dir}/src"></delete>
	<delete dir="${codegen.plugin.output.dir}/class"></delete>
    </target>

    <!--Install the codegen plugin -->
    <target name="install-codegen-plugin" depends="init,generate-codegen-project,generate-codegen-plugin">
        <delete dir="${eclipse.home}/plugins/${codegen.plugin.version}"></delete>
          <copy todir="${eclipse.home}/plugins">
    		<fileset dir="${plugin.output.dir}"/>
          </copy>
    </target>
    
    <!--Relese the plugins (this will install the plugins and build the zip version)-->
    <target name="release-plugin">
    	<mkdir dir="${output.target}" />
    	<mkdir dir="${output.target}/codegen/${codegen.plugin.version}" />
    	
        <antcall target="generate-codegen-plugin"/>
    	
        <copy todir="${output.target}/codegen/${codegen.plugin.version}">
              <fileset dir="${plugin.output.dir}/${codegen.plugin.version}"/>
        </copy>
    	
    	<!--Zip the eclipse plugins to eclipse_plugins/target -->
    	<zip destfile="${output.target}/${codegen.plugin.zip.name}"
    	       basedir="${output.target}/codegen"
    	       update="true"
    	/>
    	<delete dir="${output.target}/codegen" />
    </target>


    <!-- Clean the directory -->
    <target name="clean">
	<delete dir="${codegen.output.dir}"></delete>
        <delete dir="${plugin.output.dir}/${codegen.plugin.version}"></delete>
        <delete file="${output.taget}/${codegen.file.zip.name}"></delete>
    </target>

	<!-- help, list of targets -->
    <target name="help">
	    <echo message="****************************************************************************" />
	    <echo message="**                 Eclipse Codegen Plugin Build                           **" />
	    <echo message="**  pre-requisit            : env.ECLIPSE_HOME                            **" />
	    <echo message="**                                                                        **" />
	    <echo message="**                                                                        **" />
	    <echo message="**  build eclipse projecti   : generate-codegen-project                   **" />
	    <echo message="**                                                                        **" />
	    <echo message="**  build eclipse plugin    : generate-codegen-plugin                     **" />
	    <echo message="**                                                                        **" />
	    <echo message="**  install plugin          : install-codegen-plugin                      **" />
	    <echo message="**                                                                        **" />
	    <echo message="**  release eclipse plugin  : release-plugin                              **" />
	    <echo message="**                                                                        **" />
	    <echo message="**                                                                        **" />
	    <echo message="****************************************************************************" />

    </target>
	

</project>



