<!--***********************************************************
 * 
 * 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="Scripting Framework Java Examples" default="all" basedir=".">
  <!-- =================== Environmental Properties ======================= -->

  <property name="prj" value="../.."/>
  <property environment="env"/>
  <property name="outdir" value="${out}/class/examples/java"/>

  <!-- ==================== classpath setting ============================ -->
  <path id="idlclasspath">
    <pathelement location="${solar.jar}/unoil.jar"/> 
    <pathelement location="${solar.jar}/jurt.jar"/>
    <pathelement location="${solar.jar}/juh.jar"/>
    <pathelement location="${solar.jar}/ridl.jar"/>
    <pathelement location="${out}/class/ScriptFramework.jar"/>
  </path> 

  <!-- ===================== HelloWorld example =========================== -->
  <target name="HelloWorld">

    <mkdir dir="${outdir}/HelloWorld"/>

    <javac srcdir="HelloWorld" destdir="${outdir}/HelloWorld"
           includes="**/*.java" classpathref="idlclasspath" includeantruntime="false"
           debug="${debug}" optimize="${optimize}" deprecation="on"/>

    <copy file="HelloWorld/HelloWorld.java" todir="${outdir}/HelloWorld"/>
    <copy file="HelloWorld/parcel-descriptor.xml" todir="${outdir}/HelloWorld"/>

    <jar jarfile="${outdir}/HelloWorld/HelloWorld.jar"
         basedir="${outdir}/HelloWorld" 
         includes="**/*.class"
         excludes="${outdir}/HelloWorld/HelloWorld.jar">
    </jar>

    <delete file="${outdir}/HelloWorld/HelloWorld.class"/>

  </target>

  <!-- ===================== Highlight example ========================== -->
  <target name="Highlight">

    <mkdir dir="${outdir}/Highlight"/>

    <javac srcdir="Highlight" destdir="${outdir}/Highlight"
           includes="**/*.java" classpathref="idlclasspath" includeantruntime="false"
           debug="${debug}" optimize="${optimize}" deprecation="on"/>

    <copy file="Highlight/HighlightText.java" todir="${outdir}/Highlight"/>
    <copy file="Highlight/parcel-descriptor.xml" todir="${outdir}/Highlight"/>

    <jar jarfile="${outdir}/Highlight/Highlight.jar"
         basedir="${outdir}/Highlight" 
         includes="**/*.class"
         excludes="${outdir}/Highlight/Highlight.jar">
    </jar>

    <delete file="${outdir}/Highlight/HighlightText.class"/>

  </target>

  <!-- ===================== MemoryUsage example ========================== -->
  <target name="MemoryUsage">

    <mkdir dir="${outdir}/MemoryUsage"/>

    <javac srcdir="MemoryUsage" destdir="${outdir}/MemoryUsage"
           includes="**/*.java" classpathref="idlclasspath" includeantruntime="false"
           debug="${debug}" optimize="${optimize}" deprecation="on"/>

    <copy file="MemoryUsage/MemoryUsage.java" todir="${outdir}/MemoryUsage"/>
    <copy file="MemoryUsage/parcel-descriptor.xml" todir="${outdir}/MemoryUsage"/>

    <jar jarfile="${outdir}/MemoryUsage/MemoryUsage.jar"
         basedir="${outdir}/MemoryUsage" 
         includes="**/*.class"
         excludes="${outdir}/MemoryUsage/MemoryUsage.jar">
    </jar>

    <delete file="${outdir}/MemoryUsage/MemoryUsage.class"/>

  </target>

  <!-- ===================== selector example ========================== -->
  <target name="selector">

    <mkdir dir="${outdir}/selector"/>

    <javac srcdir="selector" destdir="${outdir}/selector"
       	   includes="**/*.java" classpathref="idlclasspath"
	       debug="${debug}" optimize="${optimize}" deprecation="on"/>

    <copy todir="${outdir}/selector">
        <fileset dir="selector">
            <include name="**/*.java"/>
            <include name="*.xml"/>
            <include name="*.gif"/>
        </fileset>
    </copy>

    <jar jarfile="${outdir}/selector/selector.jar"
         basedir="${outdir}/selector" includes="*.class,*.gif">
    </jar>

    <delete>
        <fileset dir="${outdir}/selector" includes="*.class,*.gif"/>
    </delete>

  </target>

  <!-- ========================= All In One Build ======================= -->
  <target name="all" depends="HelloWorld,Highlight,MemoryUsage"/>
 
</project>
