<?xml version="1.0" encoding="UTF-8"?>
<project default="jar"
         xmlns:j="jelly:core"
         xmlns:u="jelly:util"
         xmlns:maven="jelly:maven"
         xmlns:deploy="deploy"
         xmlns:ant="jelly:ant">
    <j:set var="samples.dir" value="target/samples"/>

    <preGoal name="java:compile">
        <path id="samples.src.path">
            <pathelement location="version/src"/>
            <pathelement location="yahoorestsearch/src"/>
            <!-- we need groovy service for the tests in integration. 
             Later we can migrate this to integration-->
	    <pathelement location="deprecated/groovy/src"/>
        </path>
        <maven:addPath id="maven.compile.src.set" refid="samples.src.path"/>
    </preGoal>

    <postGoal name="test:test">
        <!-- <j:if test="${context.getVariable('maven.test.skip') != 'true'}"> -->
        <attainGoal name="create-samples"/>
        <!-- </j:if> -->
    </postGoal>

    <goal name="mail-tests">
        <!--       TODO call the Mail tests if the mail jar is presents
       <j:if test="${maven.repo.local}/j2ee/jars/mail.jar">
           <ant:ant antfile="script/mail-test.xml" inheritall="true" inheritrefs="true" dir="."/>
        </j:if>
        maven -Dtestcase=org.foo.bar.MyTest test:single-test
        -->
    </goal>

    <goal name="create-samples">
        <!--        <mkdir dir="target/samples"/>-->
        <mkdir dir="${samples.dir}/userguide"/>
        <mkdir dir="target/samples/wsdl"/>
        <copy todir="target/samples/wsdl">
            <ant:fileset dir="wsdl"/>
        </copy>
        <attainGoal name="userguide"/>
        <attainGoal name="googleSpellcheck"/>
        <attainGoal name="yahooRESTSearch"/>
        <attainGoal name="version"/>
        <attainGoal name="groovy"/>
    </goal>

    <!-- ================================================================ -->
    <!--- Version Sample -->
    <!-- ================================================================ -->
    <goal name="version">
        <mkdir dir="target/version" />
        <jar destfile="target/version/version.jar">
            <fileset dir="target/classes">
                <include name="sample/axisversion/**"/>
            </fileset>
            <fileset dir="version/src/sample/axisversion/">
                <include name="META-INF/services.xml"/>
            </fileset>
        </jar>
        <copy file="target/version/version.jar"
              tofile="target/toWar/services/version.aar"/>
    </goal>
    
    <!-- ================================================================ -->
    <!--- User Guide Sample -->
    <!-- ================================================================ -->
    <goal name="userguide">
        <mkdir dir="target/samples"/>
        <mkdir dir="${samples.dir}/userguide"/>
        <mkdir dir="${samples.dir}/userguide/src"/>
        <ant:copy todir="${samples.dir}/userguide/src">
            <ant:fileset dir="userguide/src">
                <ant:include name="userguide/**"/>
            </ant:fileset>
        </ant:copy>
        <jar destfile="${samples.dir}/userguide/sample.jar">
            <fileset dir="target/classes">
                <include name="userguide/**"/>
            </fileset>
        </jar>
    </goal>
 
    <goal name="yahooRESTSearch">
        <mkdir dir="target/yahoorestsearch" />
        <jar destfile="target/yahoorestsearch/yahooRESTSearch.jar">
            <fileset dir="target/classes">
                <include name="sample/yahooservices/RESTSearch/**"/>
            </fileset>
        </jar>
    </goal>

    <!-- ================================================================ -->
    <!--- Google SpellCheck Sample -->
    <!-- ================================================================ -->

    <goal name="googleSpellcheck">
        <mkdir dir="target/googlespellcheck" />
        <jar destfile="target/googlespellcheck/googleSpellcheck.jar">
            <fileset dir="target/classes">
                <include name="sample/google/spellcheck/**"/>
                <include name="sample/google/common/**"/>
            </fileset>
        </jar>
    </goal>

    <!-- ================================================================ -->
    <!--- Groovy Service Sample -->
    <!-- ================================================================ -->

    <goal name="groovy">
        <mkdir dir="target/groovy"/>
        <ant:copy file="deprecated/groovy/src/sample/groovy/GroovyRcv.groovy"
                  tofile="target/classes/sample/groovy/GroovyRcv.groovy"/>
        <mkdir dir="target/classes/sample/groovy/lib"/>
        <mkdir dir="target/classes/sample/groovy/META-INF"/>
        <mkdir dir="target/classes/sample/groovy/sample"/>
        <mkdir dir="target/classes/sample/groovy/sample/groovy"/>
        <ant:copy file="target/classes/sample/groovy/GroovyReceiver.class"
                  tofile="target/classes/sample/groovy/sample/groovy/GroovyReceiver.class"/>
        <ant:copy file="deprecated/groovy/src/sample/groovy/META-INF/services.xml"
                  tofile="target/classes/sample/groovy/META-INF/services.xml"/>
        <ant:delete file="target/classes/sample/groovy/GroovyReceiver.class"/>
        <j:if test="${context.getVariable('maven.jar.override').toString().trim().equalsIgnoreCase('on')}">
            <ant:copy file="${dependencies.dir}/groovy-all-${groovy.all.version}.jar"
                      tofile="target/classes/sample/groovy/lib/groovy-all-${groovy.all.version}.jar"/>
        </j:if>
        <j:if test="${context.getVariable('maven.jar.override').toString().trim().equalsIgnoreCase('off')}">
            <ant:copy file="${maven.repo.local}/groovy/jars/groovy-all-${groovy.all.version}.jar"
                      tofile="target/classes/sample/groovy/lib/groovy-all-${groovy.all.version}.jar"/>
        </j:if>
        <jar destfile="target/groovy/groovyService.aar">
            <fileset dir="target/classes/sample/groovy">
            </fileset>
        </jar>
    </goal>
 

    <!-- ================================================================ -->
    <!--- Security Sample -->
    <!-- ================================================================ -->
    <goal name="securitySample">

        <mkdir dir="target/security"/>
        <mkdir dir="target/security/META-INF"/>

        <!-- Create the service archive -->
        <ant:move todir="target/security">
            <ant:fileset dir="target/classes">
                <ant:include name="sample/security/*.class"/>
            </ant:fileset>
        </ant:move>
        <ant:copy file="src/sample/security/META-INF/services.xml"
                  tofile="target/security/META-INF/services.xml"/>
        <ant:copy file="resources/security/sec.jks" tofile="target/security/sec.jks"/>
        <ant:copy file="resources/security/sec.properties" tofile="target/security/sec.properties"/>
        <jar destfile="target/security/SecureService.aar">
            <fileset dir="target/security"></fileset>
        </jar>

        <!-- Create a jar to hold the password callback class-->
        <mkdir dir="target/security/secUtil/sample/security/"/>
        <ant:copy file="target/security/sample/security/PWCallback.class"
                  toFile="target/security/secUtil/sample/security/PWCallback.class"/>
        <ant:copy file="target/security/sample/security/Client.class"
                  toFile="target/security/secUtil/sample/security/Client.class"/>
        <ant:copy file="resources/security/sec.jks" tofile="target/security/secUtil/sec.jks"/>
        <ant:copy file="resources/security/sec.properties"
                  tofile="target/security/secUtil/sec.properties"/>
        <jar destfile="target/security/secUtil.jar">
            <fileset dir="target/security/secUtil"></fileset>
        </jar>

        <mkdir dir="target/samples/security/client_repo/modules"/>
        <ant:copy file="resources/security/client.axis2.xml"
                  tofile="target/samples/security/client_repo/conf/axis2.xml"/>

        <!-- Copy the sources and others ovrer to the target/samples/security-->
        <mkdir dir="target/samples/security/src/sample/security/"/>
        <ant:copy todir="target/samples/security/src/sample/security/">
            <ant:fileset dir="src/sample/security"/>
        </ant:copy>

        <ant:copy file="target/security/SecureService.aar"
                  tofile="target/samples/security/SecureService.aar"/>

        <!-- copy the local libs -->
        <mkdir dir="target/samples/security/lib"/>
        <ant:copy file="target/security/secUtil.jar"
                  tofile="target/samples/security/lib/secUtil.jar"/>
        <j:if test="${context.getVariable('maven.jar.override').toString().trim().equalsIgnoreCase('on')}">
            <ant:copy file="${dependencies.dir}/xmlsec-${xmlsec.version}.jar"
                      todir="target/samples/security/lib/"/>
            <ant:copy file="${dependencies.dir}/bcprov-${bcprov.version}.jar"
                      todir="target/samples/security/lib/"/>
            <ant:copy file="${dependencies.dir}/wss4j-${wss4j.version}.jar"
                      todir="target/samples/security/lib/"/>
            <ant:copy file="${dependencies.dir}/commons-discovery-${commons.discovery.version}.jar"
                      todir="target/samples/security/lib/"/>
        </j:if>
        <j:if test="${context.getVariable('maven.jar.override').toString().trim().equalsIgnoreCase('off')}">
            <ant:copy file="${maven.repo.local}/xml-security/jars/xmlsec-${xmlsec.version}.jar"
                      todir="target/samples/security/lib/"/>
            <ant:copy file="${maven.repo.local}/bouncycastle/jars/bcprov-${bcprov.version}.jar"
                      todir="target/samples/security/lib/"/>
            <ant:copy file="${maven.repo.local}/wss4j/jars/wss4j-${wss4j.version}.jar"
                      todir="target/samples/security/lib/"/>
        </j:if>
        <ant:copy file="resources/security/README.txt" tofile="target/samples/security/README.txt"/>
        <ant:copy file="resources/security/build.xml" tofile="target/samples/security/build.xml"/>

        <delete dir="target/security/"/>

    </goal>

    <!-- ================================================================ -->
    <!--- Eventing Sample -->
    <!-- ================================================================ -->
    <!--goal name="eventing">
    
        <property name="eventing.temp.dir" value="${samples.dir}/eventing/temp" />
        <property name="listner1.temp.dir" value="${eventing.temp.dir}/listner1" />
        <property name="listner2.temp.dir" value="${eventing.temp.dir}/listner2" />
        <property name="publisher.temp.dir" value="${eventing.temp.dir}/publisher" />
        
        <mkdir dir="${listner1.temp.dir}" />
        <mkdir dir="${listner1.temp.dir}/META-INF" />
        <mkdir dir="${listner2.temp.dir}" />
        <mkdir dir="${listner2.temp.dir}/META-INF" />
        <mkdir dir="${publisher.temp.dir}" />
        <mkdir dir="${publisher.temp.dir}/META-INF" />
                
        <copy toFile="${listner1.temp.dir}/META-INF/services.xml" file="resources/eventing/listner1.services.xml"/>
        <copy toFile="${listner2.temp.dir}/META-INF/services.xml" file="resources/eventing/listner2.services.xml"/>
        <copy toFile="${publisher.temp.dir}/META-INF/services.xml" file="resources/eventing/publisher.services.xml"/>
        
        <jar destfile="${samples.dir}/eventing/ListnerService1.aar">
            <fileset dir="target/classes">
                <include name="sample/eventing/**/**/*ListnerService1*" />
            </fileset>
            <fileset dir="${listner1.temp.dir}">
                <include name="META-INF/**"/>
            </fileset>
        </jar>
        
        <jar destfile="${samples.dir}/eventing/ListnerService2.aar">
            <fileset dir="target/classes">
                <include name="sample/eventing/**/**/*ListnerService2*" />
            </fileset>
            <fileset dir="${listner2.temp.dir}">
                <include name="META-INF/**"/>
            </fileset>
        </jar>
        
        <jar destfile="${samples.dir}/eventing/PublisherService.aar">
            <fileset dir="target/classes">
                <include name="sample/eventing/**/**/*PublisherService*" />
            </fileset>
            <fileset dir="${publisher.temp.dir}">
                <include name="META-INF/**"/>
            </fileset>
        </jar>
        
        <jar destfile="${samples.dir}/eventing/ListnerService1.aar">
            <fileset dir="target/classes">
                <include name="sample/eventing/**/**/*ListnerService1*" />
            </fileset>
            <fileset dir="${listner1.temp.dir}">
                <include name="META-INF/**"/>
            </fileset>
        </jar>
        
        <jar destfile="${samples.dir}/eventing/EventingSample.jar">
            <fileset dir="target/classes">
                <include name="sample/eventing/**"/>
            </fileset>
        </jar>
        
        <ant:copy todir="${samples.dir}/eventing">
            <ant:fileset dir="script/eventing"/>
        </ant:copy>

    </goal-->


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

</project>
