<?xml version="1.0" encoding="windows-1252" ?>
<project name="imutils" default="default" basedir="."
         xmlns="antlib:org.apache.tools.ant">
  <!-- == _____________________________________________________________________________ == -->
  <property file="build.properties"/>
  <import file="ant_task_build.xml"/>
  <import file="download_build.xml"/>
  <path id="library">
    <fileset dir="external">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="external/jar">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="${java.home}/../lib">
      <include name="tools.jar"/>
    </fileset>
  </path>
  <path id="classpath">
    <path refid="library"/>
  </path>
  <path id="antclasspath">
    <pathelement location="${build.outdir}/${jarname}_ant.jar"/>
    <pathelement location="${lib.outdir}/commons-net-1.4.0.jar"/>
    <pathelement location="${lib.outdir}/commons-httpclient-3.0-rc3.jar"/>
    <pathelement location="${java.home}/../lib/tools.jar"/>
  </path>
  <path id="fullclasspath">
    <pathelement location="${compile.outdir}"/>
    <path refid="library"/>
  </path>
  <path id="srcpath">
    <pathelement location="${src.outdir}"/>
  </path>
  <!-- == _____________________________________________________________________________ == -->
  <target name="default"
          description="clean,format,compile,minibuild,build_separate_win,build,ant_javadoc,javadoc,reportdoc,zipdoc,zipsrc,fullzip"
          depends="clean,format,compile,minibuild,build_separate_win,build,ant_javadoc,javadoc,reportdoc,zipdoc,zipsrc,fullzip"/>
  <!-- == _____________________________________________________________________________ == -->
  <target name="init" description="initialization">
    <mkdir dir="${javadoc.outdir}"/>
    <mkdir dir="${build.outdir}"/>
    <mkdir dir="${compile.outdir}"/>
    <mkdir dir="trashcan"/>
    <loadproperties srcfile="mybuild.number"/>
    <tstamp>
      <format property="TODAY" pattern="d MMMM yyyy" timezone="${timezone}"/>
      <format property="NOW" pattern="HH:mm:ss" timezone="${timezone}"/>
    </tstamp>
    <!-- build ant classes jar Non7VrJ8UUNDrr8mOfzEauN9kTb0WKWA -->
    <antcall target="Non7VrJ8UUNDrr8mOfzEauN9kTb0WKWA"/>
    <taskdef onerror="report" name="if" classname="util.ant.If"
             classpathref="antclasspath"/>
    <taskdef onerror="report" name="true" classname="util.ant.True"
             classpathref="antclasspath"/>
    <taskdef onerror="report" name="false" classname="util.ant.False"
             classpathref="antclasspath"/>
    <taskdef onerror="report" name="install" classname="util.ant.Install"
             classpathref="antclasspath"/>
    <taskdef onerror="report" name="passwd" classname="util.ant.Password"
             classpathref="antclasspath"/>
    <taskdef onerror="report" name="pathbuilder"
             classname="util.ant.PathBuilder" classpathref="antclasspath"/>
    <!-- download dependencies fmvCEEkb6nwWK2qXrwqcejH5rBe0OvF9 -->
    <antcall target="fmvCEEkb6nwWK2qXrwqcejH5rBe0OvF9"/>
    <!-- download runtime dependencies ja38ozVvb7QpUO8bz3AeyRrVli7tHmry -->
    <antcall target="ja38ozVvb7QpUO8bz3AeyRrVli7tHmry"/>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="ant_javadoc" description="prepare ant classes javadoc"
          depends="init, OkcBDELVfriRzOzvvLLaopiY0i47VrRt"/>
  <!-- == _____________________________________________________________________________ == -->
  <target name="ant_classes_info" description="prints info on ant classes"
          depends="wUzUkseKGln2KzuF3iAbNIgzqHf6gJfB"/>
  <!-- == _____________________________________________________________________________ == -->
  <target name="clean" description="cleans the project">
    <delete includeemptydirs="true" quiet="true">
      <fileset dir="${compile.outdir}" includes="**/*"/>
    </delete>
    <delete includeemptydirs="true" quiet="true">
      <fileset dir="${build.outdir}" includes="**/*"/>
    </delete>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="compile" description="compiles Java source files 1.4 and 1.5"
          depends="init">
    <echo>
      compiling 1.4 classes
    </echo>
    <javac destdir="${compile.outdir}" classpathref="classpath"
           debug="${javac.debug}" nowarn="${javac.nowarn}"
           deprecation="${javac.deprecation}" encoding="Cp1252" source="1.4"
           target="1.4" fork="true" memorymaximumsize="256m">
      <src path="src"/>
      <exclude name="util/monitor15/MemoryMonitor.java"/>
      <exclude name="util/par/**"/>
      <exclude name="**/**Test**"/>
      <exclude name="**/**test**"/>
    </javac>
    <echo>
      compiling 1.5 classes
    </echo>
    <javac destdir="${compile.outdir}" classpathref="classpath"
           debug="${javac.debug}" nowarn="${javac.nowarn}"
           deprecation="${javac.deprecation}" encoding="Cp1252" source="1.5"
           target="1.5" fork="true" memorymaximumsize="256m">
      <src path="src"/>
      <include name="util/monitor15/MemoryMonitor.java"/>
      <include name="util/par/**"/>
      <exclude name="**/**Test**"/>
      <exclude name="**/**test**"/>
    </javac>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="initbuild" description="build number++">
    <buildnumber file="mybuild.number"/>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="javadoc"
          description="creates javadoc and copy extra documentation"
          depends="init">
    <delete>
      <fileset dir="${javadoc.outdir}"/>
    </delete>
    <mkdir dir="${javadoc.outdir}"/>
    <if>
      <isset property="offlineapi"/>
      <true>
        <echo>
          offline javadoc generation
        </echo>
        <javadoc sourcepathref="srcpath" classpathref="classpath"
                 destdir="${javadoc.outdir}" encoding="Cp1252"
                 additionalparam="-J-Xmx256m" access="${javadoc.access}"
                 version="true" author="true" use="true" splitindex="true"
                 stylesheetfile="stylesheet.css" serialwarn="false"
                 windowtitle="IMUtils" linksource="${javadoc.linksource}">
          <packageset dir="src"/>
          <group title="IMUtils utility classes">
            <package name="util.*"/>
            <package name="util"/>
          </group>
          <group title="IMUtils utility classes for ant/javadoc">
            <package name="util.ant*"/>
            <package name="util.javadoc*"/>
          </group>
          <group title="IMUtils Dialog boxes">
            <package name="util.dialog*"/>
          </group>
          <group title="external utility classes">
            <package name="com*"/>
            <package name="to*"/>
            <package name="net*"/>
            <package name="osbaldeston*"/>
            <package name="java*"/>
            <package name="javax*"/>
          </group>
          <group title="IMUtils Windows utility classes">
            <package name="util.win*"/>
          </group>
          <group title="IMUtils Applications">
            <package name="util.applications*"/>
          </group>
          <link offline="true" href="${internetapi}"
                packagelistloc="${localapi}"/>
          <link offline="true" href="${internetmailapi}"
                packagelistloc="${localmailapi}"/>
          <link offline="true" href="${internetapachecommonsnetapi}"
                packagelistloc="${localapachecommonsnetapi}"/>
          <link offline="true" href="${internetjai1api}"
                packagelistloc="${localjai1api}"/>
          <link offline="true" href="${internetjai2api}"
                packagelistloc="${localjai2api}"/>
          <link offline="true" href="${internettidyapi}"
                packagelistloc="${localtidyapi}"/>
          <link offline="true" href="${internetsystrayapi}"
                packagelistloc="${localsystrayapi}"/>
          <taglet name="util.javadoc.ToDo" path="${compile.outdir}"/>
          <taglet name="util.javadoc.FixMe" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Requires" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Usage" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Example" path="${compile.outdir}"/>
          <taglet name="util.javadoc.VersionHistory" path="${compile.outdir}"/>
        </javadoc>
      </true>
      <false>
        <echo>
          online javadoc generation
        </echo>
        <javadoc sourcepathref="srcpath" classpathref="classpath"
                 destdir="${javadoc.outdir}" encoding="Cp1252"
                 additionalparam="-J-Xmx256m" access="${javadoc.access}"
                 version="true" author="true" use="true" splitindex="true"
                 stylesheetfile="stylesheet.css" serialwarn="false"
                 windowtitle="IMUtils" linksource="${javadoc.linksource}">
          <packageset dir="src"/>
          <group title="IMUtils utility classes">
            <package name="util.*"/>
            <package name="util"/>
          </group>
          <group title="IMUtils utility classes for ant/javadoc">
            <package name="util.ant*"/>
            <package name="util.javadoc*"/>
          </group>
          <group title="IMUtils Dialog boxes">
            <package name="util.dialog*"/>
          </group>
          <group title="external utility classes">
            <package name="com*"/>
            <package name="to*"/>
            <package name="net*"/>
            <package name="osbaldeston*"/>
            <package name="java*"/>
            <package name="javax*"/>
          </group>
          <group title="IMUtils Windows utility classes">
            <package name="util.win*"/>
          </group>
          <group title="IMUtils Applications">
            <package name="util.applications*"/>
          </group>
          <link offline="true" href="${internetapi}"
                packagelistloc="${localapi}"/>
          <link href="${internetmailapi}"/>
          <link href="${internetapachecommonsnetapi}"/>
          <link href="${internetjai1api}"/>
          <link href="${internetjai2api}"/>
          <link href="${internettidyapi}"/>
          <link href="${internetsystrayapi}"/>
          <taglet name="util.javadoc.ToDo" path="${compile.outdir}"/>
          <taglet name="util.javadoc.FixMe" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Requires" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Usage" path="${compile.outdir}"/>
          <taglet name="util.javadoc.Example" path="${compile.outdir}"/>
          <taglet name="util.javadoc.VersionHistory" path="${compile.outdir}"/>
        </javadoc>
      </false>
    </if>
    <copy todir="${javadoc.outdir}">
      <fileset dir="${javadoc.additionaldoc.dir}"/>
    </copy>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <!-- needs Jakarta ORO and Apache Commons_net int ant/lib -->
  <target name="FTPupload"
          description="uploads zipped source, extra docs, build files and project files"
          depends="init">
    <if>
      <isset property="ftp.pass"/>
      <false>
        <passwd property="ftp.pass"/>
      </false>
    </if>
    <zip destfile="${jarname}.ftp.zip">
      <fileset dir="." casesensitive="no">
        <patternset>
          <include name="${config.outdir}/**"/>
          <include name="${src.outdir}/**"/>
          <include name="build.xml"/>
          <include name="pom.xml"/>
          <include name="site.xml"/>
          <include name="README.txt"/>
          <include name="LICENSE.txt"/>
          <include name="ant_task_build.xml"/>
          <include name="download_build.xml"/>
          <include name="mybuild.number"/>
          <include name="stylesheet.css"/>
          <include name="imutils.txt"/>
          <include name="build.properties"/>
          <include name="imutils_jalopy.xml"/>
          <include name="runparams.txt"/>
          <include name="${javadoc.additionaldoc.dir}/**"/>
        </patternset>
      </fileset>
    </zip>
    <ftp action="mkdir" server="${ftp.server}" port="${ftp.port}"
         userid="${ftp.user}" password="${ftp.pass}"
         remotedir="${ftp.remote.dir}" passive="${ftp.passive}"/>
    <ftp server="${ftp.server}" port="${ftp.port}" remotedir="${ftp.remote.dir}"
         userid="${ftp.user}" password="${ftp.pass}" depends="yes" binary="yes"
         verbose="false" passive="${ftp.passive}">
      <fileset dir="." casesensitive="no">
        <patternset>
          <include name="${jarname}.ftp.zip"/>
        </patternset>
      </fileset>
    </ftp>
    <delete file="${jarname}.ftp.zip"/>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <!-- needs Jakarta ORO and Apache Commons_net int ant/lib -->
  <target name="FTPdownload"
          description="downloads zipped source, extra docs, build files and project files"
          depends="init">
    <if>
      <isset property="ftp.pass"/>
      <false>
        <passwd property="ftp.pass"/>
      </false>
    </if>
    <ftp action="get" server="${ftp.server}" port="${ftp.port}"
         userid="${ftp.user}" password="${ftp.pass}"
         remotedir="${ftp.remote.dir}" passive="${ftp.passive}">
      <fileset dir=".">
        <include name="**"/>
      </fileset>
    </ftp>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="build" description="creates main jar file" depends="compile">
    <checksum>
      <fileset dir="${compile.outdir}">
        <include name="**/**.class"/>
      </fileset>
    </checksum>
    <pathbuilder property="fullpath" rootdir="${basedir}">
      <path refid="library"/>
      <path location="config/"/>
    </pathbuilder>
    <jar destfile="${build.outdir}/${jarname}.jar" index="false">
      <fileset dir="${compile.outdir}" includes="**"/>
      <fileset dir="${javadoc.additionaldoc.dir}"
               includes="util/applications/diskbrowser/hlp/**"/>
      <fileset dir="${src.outdir}"
               includes="**/**.xml **/*.png **/*.dtd com/ice/tar/asciimime.txt **/**.properties util/display/splash.** images/** util/countries/countries.iso3166 util/countries/languages.iso639 util/applications/diskbrowser/FileSearchDialogHelp_patterns_html.txt util/lang/charset/charset.zip"
               excludes="**.deploy"/>
      <manifest>
        <attribute name="Main-Class" value="${mainclass}"/>
        <attribute name="Class-Path" value="${fullpath}"/>
        <attribute name="Date" value="${TODAY}, ${NOW} (${timezone})"/>
        <attribute name="SplashScreen-Image"
                   value="images/applications/diskbrowser/splash.png"/>
        <attribute name="Created-By" value="${buildby}"/>
        <attribute name="Package-Title" value="${package.title}"/>
        <attribute name="Package-Vendor" value="${package.vendor}"/>
        <attribute name="Package-Version"
                   value="${majorversion}.${minorversion}.${subversion}.${build.number} ${versionsuffix} Full"/>
      </manifest>
    </jar>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="fullzip" description="creates gz of complete project"
          depends="minibuild,build_separate_win,build,ant_javadoc,javadoc,reportdoc,zipdoc,zipsrc">
    <zip destfile="${build.outdir}/${jarname}.zip">
      <fileset dir="." casesensitive="no">
        <patternset>
          <include name="${lib.outdir}/*.dll"/>
          <include name="${lib.outdir}/*.exe"/>
          <include name="${lib.outdir}/*.jar"/>
          <include name="${config.outdir}/**"/>
          <include name="${src.outdir}/**"/>
          <include name="${javadoc.outdir}/**"/>
          <include name="${build.outdir}/*.jar"/>
          <include name="${build.outdir}/*.zip"/>
          <include name="build.xml"/>
          <include name="site.xml"/>
          <include name="pom.xml"/>
          <include name="README.txt"/>
          <include name="LICENSE.txt"/>
          <include name="ant_task_build.xml"/>
          <include name="download_build.xml"/>
          <include name="mybuild.number"/>
          <include name="stylesheet.css"/>
          <include name="imutils.txt"/>
          <include name="build.properties"/>
          <include name="imutils_jalopy.xml"/>
          <include name="runparams.txt"/>
          <include name="${javadoc.additionaldoc.dir}/**"/>
        </patternset>
      </fileset>
    </zip>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="zipdoc" description="zips javadoc" depends="javadoc">
    <zip destfile="${build.outdir}/${jarname}.doc.zip">
      <fileset dir="${javadoc.outdir}" casesensitive="no">
        <patternset>
          <include name="**"/>
        </patternset>
      </fileset>
    </zip>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="zipsrc" description="zips source files">
    <zip destfile="${build.outdir}/${jarname}.src.zip">
      <fileset dir="${src.outdir}" casesensitive="no">
        <patternset>
          <include name="**/**.java"/>
        </patternset>
      </fileset>
    </zip>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="minibuild" description="creates mini jar" depends="compile">
    <pathbuilder property="fullpath" rootdir="${basedir}">
      <path refid="library"/>
      <path location="config/"/>
    </pathbuilder>
    <jar destfile="${build.outdir}/${jarname}_m.jar" index="false">
      <fileset dir="${compile.outdir}" includes=""
               excludes="**/**.java util/win/** util/applications/** images/** util/dialog/convertdialog/** util/imaging/jai/**"/>
      <fileset dir="${src.outdir}"
               includes="**/*.dtd com/ice/tar/asciimime.txt **/**.properties util/display/splash.** util/countries/countries.iso3166 util/countries/languages.iso639 util/lang/charset/charset.zip"
               excludes="**/**.java"/>
      <manifest>
        <attribute name="Main-Class" value="${simplemainclass}"/>
        <attribute name="Class-Path" value="${fullpath}"/>
        <attribute name="Date" value="${TODAY}, ${NOW} (${timezone})"/>
        <attribute name="Created-By" value="${buildby}"/>
        <attribute name="Package-Title" value="${package.title}"/>
        <attribute name="Package-Vendor" value="${package.vendor}"/>
        <attribute name="Package-Version"
                   value="${majorversion}.${minorversion}.${subversion}.${build.number} ${versionsuffix} Minimal"/>
      </manifest>
    </jar>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="build_separate_win" description="creates win jar"
          depends="compile">
    <jar destfile="${build.outdir}/${jarname}_win.jar" index="true">
      <fileset dir="${compile.outdir}"
               includes="util/win/** util/exception/** util/io/IOGeneralFile.class util/imaging/info/ImageInfo.class util/HexString.class util/lang/StringTool.class  util/math/MathFunc.class"
               excludes="**.deploy **/**.java **/**.MD5"/>
      <manifest>
        <attribute name="Date" value="${TODAY}, ${NOW} (${timezone})"/>
        <attribute name="Created-By" value="${buildby}"/>
        <attribute name="Package-Title" value="${package.title}"/>
        <attribute name="Package-Vendor" value="${package.vendor}"/>
        <attribute name="Package-Version"
                   value="${majorversion}.${minorversion}.${subversion}.${build.number} ${versionsuffix} Windows(c)"/>
      </manifest>
    </jar>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <!-- needs jalopy installed and it's root set in the properties -->
  <target name="format" description="format source with jalopy">
    <taskdef onerror="report" name="jalopy"
             classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
      <classpath>
        <fileset dir="${jalopy.home}/lib">
          <include name="*.jar"/>
        </fileset>
      </classpath>
    </taskdef>
    <jalopy fileformat="${jalopy.fileformat}" convention="${jalopy.xml}"
            loglevel="${jalopy.loglevel}" classpathref="classpath">
      <fileset dir="${src.outdir}" includes="**/*.java"/>
    </jalopy>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <!-- needs lint4j int ant classpath -->
  <target name="Xv06pEXnSh0o92FCmEViVFKe4vOvfquh"
          description="jlint source audit prepare">
    <antcall target="ek7rgdl6vfyfS9LLWQjgtpTNL25wKreC"/>
    <taskdef name="lint4j" classname="com.jutils.lint4j.ant.Lint4jAntTask">
      <classpath>
        <pathelement location="${lib.outdir}/ant/lint4j.jar"/>
      </classpath>
    </taskdef>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="jlint1" description="jlint source audit level 1"
          depends="Xv06pEXnSh0o92FCmEViVFKe4vOvfquh">
    <echo>
      lint4j checking level 1
    </echo>
    <delete file="lint.1.log"/>
    <lint4j level="1" exact="true" packages="util.*">
      <sourcepath>
        <pathelement path="${src.outdir}"/>
      </sourcepath>
      <classpath refid="classpath"/>
      <formatters>
        <formatter type="text"/>
        <formatter type="text" tofile="lint.1.log"/>
      </formatters>
    </lint4j>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="jlint2" description="jlint source audit level 2"
          depends="Xv06pEXnSh0o92FCmEViVFKe4vOvfquh">
    <echo>
      lint4j checking level 2
    </echo>
    <delete file="lint.2.log"/>
    <lint4j level="2" exact="true" packages="util.*">
      <sourcepath>
        <pathelement path="${src.outdir}"/>
      </sourcepath>
      <classpath refid="classpath"/>
      <formatters>
        <formatter type="text"/>
        <formatter type="text" tofile="lint.2.log"/>
      </formatters>
    </lint4j>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="jlint3" description="jlint source audit level 3"
          depends="Xv06pEXnSh0o92FCmEViVFKe4vOvfquh">
    <echo>
      lint4j checking level 3
    </echo>
    <delete file="lint.3.log"/>
    <lint4j level="3" exact="true" packages="util.*">
      <sourcepath>
        <pathelement path="${src.outdir}"/>
      </sourcepath>
      <classpath refid="classpath"/>
      <formatters>
        <formatter type="text"/>
        <formatter type="text" tofile="lint.3.log"/>
      </formatters>
    </lint4j>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="reportdoc" description="javadoc and class report builder"
          depends="compile">
    <javadoc sourcepathref="srcpath" classpathref="fullclasspath">
      <packageset dir="src"/>
      <doclet name="util.javadoc.ReportDoclet"
              path="${build.outdir}/${jarname}_ant.jar">
        <param name="-stylesheet" value="stylesheet.css"/>
        <param name="-location" value="javadoc/"/>
        <param name="-class" value="util.io.IOFile"/>
        <param name="-class" value="java.io.File"/>
        <param name="-importr" value="true"/>
      </doclet>
    </javadoc>
  </target>
  <!-- == _____________________________________________________________________________ == -->
  <target name="help" description="this help">
    <echo>
      ant_classes_info: prints info on ant classes
    </echo>
    <echo>
      ant_javadoc: prepare ant classes javadoc
    </echo>
    <echo>
      build: creates main jar file
    </echo>
    <echo>
      build_separate_win: creates win jar
    </echo>
    <echo>
      clean: cleans the project
    </echo>
    <echo>
      compile: compiles Java source files 1.4 and 1.5
    </echo>
    <echo>
      format: format source with jalopy
    </echo>
    <echo>
      fullzip: creates gz of complete project
    </echo>
    <echo>
      help: this help
    </echo>
    <echo>
      FTPdownload: downloads zipped source, extra docs, build files and project
      files
    </echo>
    <echo>
      FTPupload: uploads zipped source, extra docs, build files and project files
    </echo>
    <echo>
      initbuild: build number++
    </echo>
    <echo>
      javadoc: creates javadoc and copy extra documentation
    </echo>
    <echo>
      jlint1: jlint source audit level 1
    </echo>
    <echo>
      jlint2: jlint source audit level 2
    </echo>
    <echo>
      jlint3: jlint source audit level 3
    </echo>
    <echo>
      minibuild: creates mini jar
    </echo>
    <echo>
      reportdoc: javadoc and class report builder
    </echo>
    <echo>
      zipdoc: zips javadoc
    </echo>
    <echo>
      zipsrc: zips source files
    </echo>
  </target>
  <!-- == _____________________________________________________________________________ == -->
</project>

