<?xml version="1.0" encoding="UTF-8"?>

<project basedir="." default="jar" name="freemarker"
  xmlns:ivy="antlib:org.apache.ivy.ant"
  xmlns:javacc="http://javacc.dev.java.net/"
  xmlns:docgen="http://freemarker.org/docgen"
  xmlns:emma="http://emma.sourceforge.net/emma"
  xmlns:bnd="http://www.aqute.biz/bnd"
  xmlns:u="http://freemarker.org/util"
>

  <!-- ================================================================== -->
  <!-- Properties                                                         -->
  <!-- ================================================================== -->

  <!-- Ivy project coordinates: -->
  <property name="moduleOrg" value="org.freemarker" />
  <property name="moduleName" value="freemarker" />
  <property name="moduleBranch" value="2.3" />

  <!-- Will be overidden on the Continous Integration server: -->
  <property name="server.ivy.repo.root" value="${basedir}/build/dummy-server-ivy-repo" />
  
  <property file="build.properties"/>
  <condition property="has.explicit.boot.classpath.j2se1.2">
    <isset property="boot.classpath.j2se1.2"/>
  </condition>
  <condition property="has.explicit.boot.classpath.j2se1.4">
    <isset property="boot.classpath.j2se1.4"/>
  </condition>
  <condition property="has.explicit.boot.classpath.j2se1.5">
    <isset property="boot.classpath.j2se1.5"/>
  </condition>
  <condition property="has.all.explicit.boot.classpaths">
    <and>
      <isset property="has.explicit.boot.classpath.j2se1.2"/>
      <isset property="has.explicit.boot.classpath.j2se1.4"/>
      <isset property="has.explicit.boot.classpath.j2se1.5"/>
    </and>
  </condition>

  <!-- When boot.classpath.j2se* is missing, these will be the defaults: -->
  <!-- Note: Target "dist" doesn't allow using these. -->
  <property name="boot.classpath.j2se1.2" value="${sun.boot.class.path}" />
  <property name="boot.classpath.j2se1.4" value="${sun.boot.class.path}" />
  <property name="boot.classpath.j2se1.5" value="${sun.boot.class.path}" />
  
  <!-- For checking the correctness of the boot.classpath.j2se* -->
  <available classpath="${boot.classpath.j2se1.2}"
    classname="java.lang.Object" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.2.correct"
  />
  <available classpath="${boot.classpath.j2se1.4}"
    classname="java.lang.Object" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.4.correct"
  />
  <available classpath="${boot.classpath.j2se1.5}"
    classname="java.lang.Object" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.5.correct"
  />
  
  <condition property="example.freemarker.jar.location"
    value="freemarker.jar" else="build/freemarker.jar">
    <and>
      <available  file="freemarker.jar" />
      <not>
        <available  file="build/freemarker.jar" />
      </not>
    </and>
  </condition>
  
  <available file="lib/struts" property="struts.available" />
  
  <!-- Set up version/timestamp filters and the version property: -->
  <tstamp>
    <format property="timestampNice" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"
        timezone="UTC" />
    <format property="timestampInVersion" pattern="yyyyMMdd'T'HHmmss'Z'"
        timezone="UTC" />
  </tstamp>
  <filter token="timestampInVersion" value="${timestampInVersion}" />
  <filter token="timestampNice" value="${timestampNice}" />
  <mkdir dir="build "/>
  <!-- Copying is needed to substitute the timestamps. -->
  <copy
      file="src/main/resources/freemarker/version.properties"
      tofile="build/version.properties.tmp"
      filtering="true"
      overwrite="true"
  />
  <property file="build/version.properties.tmp" />
  <delete file="build/version.properties.tmp" />
  <filter token="version" value="${version}" />
  
  <property name="dist.dir" value="build/dist/freemarker-${version}" />
  
  
  <!-- ================================================================== -->
  <!-- Initialization                                                     -->
  <!-- ================================================================== -->

  
  <target name="clean" description="get rid of all generated files">
    <delete dir="build" />
  </target>

  <target name="clean-classes" description="get rid of compiled classes">
    <delete dir="build/classes" />
    <delete dir="build/test-classes" />
    <delete dir="build/coverage/classes" />
  </target>

  <condition property="deps.available">
    <available file=".ivy" />
  </condition>
  
  <target name="init" depends="_autoget-deps"
    description="fetch dependencies if any are missing and create the build directory if necessary"
  >
    <mkdir dir="build"/>
  </target>

  
  <!-- ================================================================= -->
  <!-- Compilation                                                       -->
  <!-- ================================================================= -->

  
  <target name="javacc" depends="init" unless="parser.uptodate"
    description="Build the parser from its grammar file"
  >
    <ivy:cachepath conf="parser" pathid="ivy.dep" />
    <taskdef name="generate" classname="org.apache.tools.ant.taskdefs.optional.javacc.JavaCC"
      uri="http://javacc.dev.java.net/"
      classpathref="ivy.dep"
    />
    
    <property name="_javaccOutputDir"
      value="build/generated-sources/java/freemarker/core/"
    />

    <mkdir dir="${_javaccOutputDir}" />
    <ivy:retrieve conf="parser" pattern="build/javacc-home.tmp/[artifact].[ext]" />
    <javacc:generate
      target="src/main/javacc/FTL.jj"
      outputdirectory="${_javaccOutputDir}"
      javacchome="build/javacc-home.tmp"
    />
    <delete dir="build/javacc-home.tmp" />
    
    <replace
      file="${_javaccOutputDir}/FMParser.java"
      token="private final LookaheadSuccess"
      value="private static final LookaheadSuccess"
    />
    <replace
      file="${_javaccOutputDir}/FMParserConstants.java"
      token="public interface FMParserConstants"
      value="interface FMParserConstants"
    />
    <replace
      file="${_javaccOutputDir}/FMParserTokenManager.java"
      token="public class FMParserTokenManager"
      value="class FMParserTokenManager"
    />
    <replace
      file="${_javaccOutputDir}/Token.java"
      token="public class Token"
      value="class Token implements java.io.Serializable"
    />
    <replace
      file="${_javaccOutputDir}/SimpleCharStream.java"
      token="public final class SimpleCharStream"
      value="final class SimpleCharStream"
    />
    <replace
      file="${_javaccOutputDir}/FMParser.java"
      token="enum"
      value="ENUM"
    />
    
    <!-- As we have a modified version in src/main/java: -->
    <move 
      file="${_javaccOutputDir}/ParseException.java"
      tofile="${_javaccOutputDir}/ParseException.java.ignore"
    />
    <move 
      file="${_javaccOutputDir}/TokenMgrError.java"
      tofile="${_javaccOutputDir}/TokenMgrError.java.ignore"
    />
  </target>
   
  <target name="compile" depends="javacc">
    <fail unless="boot.classpath.j2se1.2.correct"><!--
      -->The "boot.classpath.j2se1.2" property value (${boot.classpath.j2se1.2}) <!--
      -->seems to be an incorrect boot classpath. Please fix it in <!--
      -->the &lt;projectDir>/build.properties file, or wherever you <!--
      -->set it.<!--
    --></fail>
    <fail unless="boot.classpath.j2se1.4.correct"><!--
      -->The "boot.classpath.j2se1.4" property value (${boot.classpath.j2se1.4}) <!--
      -->seems to be an incorrect boot classpath. Please fix it in <!--
      -->the &lt;projectDir>/build.properties file, or wherever you <!--
      -->set it.<!--
    --></fail>
    <fail unless="boot.classpath.j2se1.5.correct"><!--
      -->The "boot.classpath.j2se1.5" property value (${boot.classpath.j2se1.5}) <!--
      -->seems to be an incorrect boot classpath. Please fix it in <!--
      -->the &lt;projectDir>/build.properties file, or wherever you <!--
      -->set it.<!--
    --></fail>
    <echo level="info">Using boot classpaths: 1.2: ${boot.classpath.j2se1.2}; 1.4: ${boot.classpath.j2se1.4}; 1.5: ${boot.classpath.j2se1.5}</echo>

    <mkdir dir="build/classes" />
    
    <!-- Note: the "build" conf includes the JSP 2.0 and Servlet 2.4 API-s. -->
    <!-- But it doesn't include other API-s that has multiple versions to compile against. -->
    <ivy:cachepath conf="build" pathid="ivy.dep" />
    <javac destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep"
      bootclasspath="${boot.classpath.j2se1.2}"
      excludes="
        freemarker/log/_JDK14LoggerFactory.java,
        freemarker/core/_RegexBuiltins.java,
        freemarker/template/utility/J2SE14TimeZoneOffsetCalculator.java,
        
        freemarker/ext/beans/_EnumModels.java,
        freemarker/ext/dom/SunInternalXalanXPathSupport.java,
        
        freemarker/ext/jsp/TaglibFactory.java,
        freemarker/ext/jsp/_FreeMarkerPageContext1.java,
        freemarker/ext/jsp/_FreeMarkerPageContext21.java,
        freemarker/ext/jsp/FreeMarkerJspFactory21.java,
        freemarker/ext/jsp/FreeMarkerJspApplicationContext.java,
        
        freemarker/ext/jython/**,
        freemarker/template/utility/JythonRuntime.java,
        freemarker/ext/ant/**"
    >
      <src>
        <pathelement location="src/main/java" />
        <pathelement location="build/generated-sources" />
      </src>
    </javac>

    <rmic
      base="build/classes" includes="freemarker/debug/impl/Rmi*Impl.class"
      classpathref="ivy.dep"
      verify="yes" stubversion="1.2"
    />
    
    <ivy:cachepath conf="build.j2se1.4" pathid="ivy.dep.j2se1.4" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.4" source="1.4" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.j2se1.4"
      bootclasspath="${boot.classpath.j2se1.4}"
      includes="
        freemarker/log/_JDK14LoggerFactory.java,
        freemarker/core/_RegexBuiltins.java,
        freemarker/template/utility/J2SE14TimeZoneOffsetCalculator.java"
    />

    <ivy:cachepath conf="build.j2se1.5" pathid="ivy.dep.j2se1.5" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.j2se1.5"
      bootclasspath="${boot.classpath.j2se1.5}"
      includes="
        freemarker/ext/beans/_EnumModels.java,
        freemarker/ext/dom/SunInternalXalanXPathSupport.java"
    />
    
    <ivy:cachepath conf="build.jsp1.2" pathid="ivy.dep.jsp1.2" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jsp1.2"
      bootclasspath="${boot.classpath.j2se1.2}"
      includes="
        freemarker/ext/jsp/TaglibFactory.java,
        freemarker/ext/jsp/_FreeMarkerPageContext1.java"
    />
    
    <!-- There's no build.jsp2.0, as those classes are part of the common build subset. -->
    
    <ivy:cachepath conf="build.jsp2.1" pathid="ivy.dep.jsp2.1" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jsp2.1"
      bootclasspath="${boot.classpath.j2se1.2}"
      includes="
        freemarker/ext/jsp/_FreeMarkerPageContext21.java,
        freemarker/ext/jsp/FreeMarkerJspFactory21.java,
        freemarker/ext/jsp/FreeMarkerJspApplicationContext.java"
    />

    <ivy:cachepath conf="build.jython2.0" pathid="ivy.dep.jython2.0" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.0"
      bootclasspath="${boot.classpath.j2se1.2}"
      includes="
        freemarker/ext/ant/**,
        freemarker/template/utility/JythonRuntime.java,
        freemarker/ext/jython/**"
      excludes="
        freemarker/ext/jython/_Jython22VersionAdapter.java,
        freemarker/ext/jython/_Jython25VersionAdapter.java"
    />
    
    <ivy:cachepath conf="build.jython2.2" pathid="ivy.dep.jython2.2" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.2"
      bootclasspath="${boot.classpath.j2se1.2}"
      includes="
        freemarker/ext/jython/_Jython22VersionAdapter.java"
    />
    
    <ivy:cachepath conf="build.jython2.5" pathid="ivy.dep.jython2.5" />
    <javac srcdir="src/main/java" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.2" source="1.2" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.5"
      bootclasspath="${boot.classpath.j2se1.5}"
      includes="
        freemarker/ext/jython/_Jython25VersionAdapter.java"
    />
    
    <rmic base="build/classes" classpathref="ivy.dep"
      includes="src/main/java/freemarker/debug/impl/Rmi*Impl.class"
      verify="yes" stubversion="1.2"
    />
    
    <!-- We don't have this file in 2.4.X... yet?
    <copy
      file="build/classes/freemarker/core/SecureRendererImpl.class"
      tofile="build/classes/freemarker/core/SecureRendererImpl.clazz"
    />
    -->
    
    <copy toDir="build/classes">
      <fileset dir="src/main/resources"
        excludes="
          freemarker/version.properties"
      />
    </copy>
    <copy toDir="build/classes" filtering="true" overwrite="true">
      <fileset dir="src/main/resources"
        includes="
          freemarker/version.properties"
      />
    </copy>
    <copy toDir="build/classes/META-INF">
      <fileset dir="."
        includes="
          LICENSE.txt,
          NOTICE.txt"
      />
    </copy>
  </target>

  <target name="compileTest" depends="compile">
    <mkdir dir="build/test-classes" />
  
    <ivy:cachepath conf="build.test" pathid="ivy.dep.test" />
    <javac srcdir="src/test/java" destdir="build/test-classes" deprecation="off" 
      debug="on" optimize="off" target="1.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpath="build/classes"
      classpathref="ivy.dep.test"
      bootclasspath="${boot.classpath.j2se1.5}"
    />
    <copy toDir="build/test-classes">
      <fileset dir="src/test/resources"
        excludes=""
      />
    </copy>
  </target>
   
   <target name="jar" depends="compile">
    <ivy:cachepath pathid="ivy.dep" conf="bnd" />
    <taskdef resource="aQute/bnd/ant/taskdef.properties"
      uri="http://www.aqute.biz/bnd"
      classpathref="ivy.dep"
    />
  
    <!-- Hack: This file should be excluded, but I can't explain that to bnd. -->
    <!-- We don't have this file in 2.4.X... yet?
    <move
        file="build/classes/freemarker/core/SecureRendererImpl.class"
        tofile="build/SecureRendererImpl.class.tmp"
        preservelastmodified="true" overwrite="true"
    />
    -->
    <bnd:bnd
        files="osgi.bnd" eclipse="false"
        output="build/freemarker.jar"
    />
    <!-- Revert previous hack... -->
    <!-- We don't have this file in 2.4.X... yet?
    <move
        file="build/SecureRendererImpl.class.tmp"
        tofile="build/classes/freemarker/core/SecureRendererImpl.class"
        preservelastmodified="true" overwrite="true"
    />
    -->
  </target>

  <!-- ================================================================= -->
  <!-- Testing                                                           -->
  <!-- ================================================================= -->

  <target name="test" depends="compileTest" description="Run test cases">
    <ivy:cachepath conf="emma" pathid="ivy.dep.emma" />
    <taskdef
      resource="emma_ant.properties" classpathref="ivy.dep.emma"
      uri="http://emma.sourceforge.net/emma" 
    />
    
    <property name="coverage.dir" location="build/coverage" />
    <property name="coverage.classes.dir" location="build/coverage/classes" />
    <mkdir dir="${coverage.classes.dir}" />
    <property name="coverage.instrumentationfile" location="${coverage.dir}/instrumentation" />
    <emma:emma enabled="true">
      <instr 
        instrpath="build/classes" outdir="${coverage.classes.dir}" 
        outfile="${coverage.instrumentationfile}" mode="copy">
        <filter excludes="*_Stub" />
      </instr>
    </emma:emma>
    <copy todir="${coverage.classes.dir}" overwrite="false">
      <fileset dir="build/classes" />
      <fileset dir="build/test-classes" />
    </copy>
    <property name="coverage.outfile" location="${coverage.dir}/coverage" />
   
    <mkdir dir="build/junit-reports" />
    <ivy:cachepath conf="test" pathid="ivy.dep.test" />
    <junit haltonfailure="off" fork="true">
      <sysproperty key="emma.coverage.out.file" value="${coverage.outfile}" />
      <classpath>
        <pathelement path="${coverage.classes.dir}" />
        <path refid="ivy.dep.emma" />
        <path refid="ivy.dep.test" />
      </classpath>
      <formatter type="plain" />
      <formatter type="xml" />
      <batchtest todir="build/junit-reports">
        <fileset dir="src/test/java">
          <include name="**/*Test.java" />
          <include name="**/*TestSuite.java" />
          <exclude name="**/Abstract*.java" />
        </fileset>
      </batchtest>
    </junit>
  </target>
  
  <target name="test-with-coverage-report" depends="test">
    <ivy:cachepath conf="emma" pathid="ivy.dep.emma" />
    <taskdef
      resource="emma_ant.properties" classpathref="ivy.dep.emma"
      uri="http://emma.sourceforge.net/emma" 
    />
    
    <property name="coverage.report.dir" location="build/coverage/report" />
    <mkdir dir="${coverage.report.dir}" />
    <delete dir="${coverage.report.dir}" />
    <mkdir dir="${coverage.report.dir}" />
    <echo message="${coverage.outfile}" />
    <echo message="${coverage.instrumentationfile}" />
    <emma:emma enabled="true">
      <report>
        <fileset dir="${basedir}">
          <include name="build/coverage/instrumentation" />
          <include name="build/coverage/coverage" />
        </fileset>
        <sourcepath>
          <dirset dir="${basedir}">
            <include name="src/main/java" />
          </dirset>
        </sourcepath>
        <html outfile="${coverage.report.dir}/index.html" />
        <xml outfile="${coverage.report.dir}/report.xml" />
      </report>
    </emma:emma>
  </target>

  <!-- ================================================================= -->
  <!-- Generate docs                                                     -->
  <!-- ================================================================= -->

  <target depends="javacc" name="javadoc" description="Build the JavaDocs" >
    <!-- depends="javacc" is needed as its output is referred in the docs. -->
    <mkdir dir="build/api" />
    <delete includeEmptyDirs="yes">
      <fileset dir="build/api" includes="**/*" />
    </delete>
    <!-- javadoc with <fileset> has bugs, so we create a filtered copy: -->
    <copy todir="build/javadoc-sources">
      <fileset dir="src/main/java">
        <exclude name="**/_*.java" />
        <exclude name="**/SunInternalXalanXPathSupport.java" />
        <!-- Remove classes that are, I suppose, only accidentally public: -->
        <exclude name="**/core/LocalContext.java" />
        <exclude name="**/core/CollectionAndSequence.java" />
        <exclude name="**/core/Comment.java" />
        <exclude name="**/core/DebugBreak.java" />
        <exclude name="**/core/Expression.java" />
        <exclude name="**/core/LibraryLoad.java" />
        <exclude name="**/core/Macro.java" />
        <exclude name="**/core/ReturnInstruction.java" />
        <exclude name="**/core/StringArraySequence.java" />
        <exclude name="**/core/TemplateElement.java" />
        <exclude name="**/core/TemplateObject.java" />
        <exclude name="**/core/TextBlock.java" />
        <exclude name="**/core/ReturnInstruction.java" />
        <exclude name="**/core/TokenMgrError.java" />
        <exclude name="**/template/EmptyMap.java" />
        <exclude name="**/log/SLF4JLoggerFactory.java" />
        <exclude name="**/log/CommonsLoggingLoggerFactory.java" />
      </fileset>
    </copy>
    <!-- conf="IDE": as that has to contain all depedencies -->
    <ivy:cachepath conf="IDE" pathid="ivy.dep" />
    <javadoc
      sourcepath="build/javadoc-sources"
      destdir="build/api"
      doctitle="FreeMarker ${version}"
      packagenames="
        freemarker.debug, freemarker.template.*,
        freemarker.core.*, freemarker.ext.*,
        freemarker.cache.*, freemarker.log.*"
      use="true"
      version="true"
      author="true"
      windowtitle="FreeMarker ${version} API"
      classpath="build/classes"
      classpathref="ivy.dep"
    />
    <delete dir="build/javadoc-sources" />
    
    <available file="build/api/resources/titlebar.gif" property="titlebar.found"/>
    <fail unless="titlebar.found"><!--
    -->build/api/resources/titlebar.gif doesn't exist, which probably means <!--
    -->that the API documentaton was generated with JDK 6 or earlier. Ensure <!--
    -->that Ant uses JDK 7 or later (you may need to set JAVA_HOME), as the <!--
    -->HTML output was significantly improved with JDK 7.<!--
    --></fail>
  </target>

  <target name="manual" depends="init" description="Build the Manual" >
    <ivy:cachepath conf="manual" pathid="ivy.dep" />
    <taskdef resource="org/freemarker/docgen/antlib.properties"
      uri="http://freemarker.org/docgen"
      classpathref="ivy.dep"
    />
    
    <docgen:transform
      srcdir="src/manual" destdir="build/manual"
    />
  </target>

  <!-- ====================== -->
  <!-- Examples               -->
  <!-- ====================== -->

  <macrodef name="buildExampleWebapp" uri="http://freemarker.org/util">
    <attribute name="exampleName" />
    <sequential>
      <mkdir dir="build/examples/@{exampleName}/WEB-INF/classes" />
      <ivy:cachepath conf="example.@{exampleName}" pathid="ivy.dep" />
      <javac
        srcdir="src/examples/@{exampleName}/WEB-INF/classes"
        destdir="build/examples/@{exampleName}/WEB-INF/classes"
        deprecation="off" debug="on" optimize="off" target="1.2" source="1.2"
        encoding="utf-8"
        includeantruntime="false"
        classpathref="ivy.dep"
        bootclasspath="${boot.classpath.j2se1.2}"
      >
        <classpath>
          <pathelement path="${ivy.dep}" />
          <pathelement location="${example.freemarker.jar.location}" />
          <fileset dir="lib/struts" erroronmissingdir="false">
            <include name="*.jar" />
          </fileset>
        </classpath>
      </javac>
      <copy toDir="build/examples/@{exampleName}">
        <fileset dir="src/examples/@{exampleName}" excludes="**/*.java" />
      </copy>
      <copy file="${example.freemarker.jar.location}"
        todir="build/examples/@{exampleName}/WEB-INF/lib" />
      <echo message="*** Example built: build/examples/@{exampleName} ***" />
    </sequential>
  </macrodef>
  
  <target name="example-webapp1" depends="init">
    <u:buildExampleWebapp examplename="webapp1" />
  </target>

  <target name="example-webapp2" depends="init">
    <u:buildExampleWebapp examplename="webapp2" />
  </target>

  <target name="example-struts-webapp" depends="init">
    <fail unless="struts.available"><!--
      -->You have to copy the Struts 1.1 jar-s to <!--
      -->lib/struts to build this example!<!--
    --></fail>
    <copy todir="build/examples/struts-webapp/WEB-INF/lib">
      <fileset dir="lib/struts" />
    </copy>
    <u:buildExampleWebapp examplename="struts-webapp" />
  </target>
  
  <target name="example-ant" depends="init">
    <mkdir dir="build/examples/ant" />
    <copy toDir="build/examples/ant">
      <fileset dir="src/examples/ant" />
    </copy>
    <copy file="${example.freemarker.jar.location}"
      todir="build/examples/ant/lib" />
    <echo message="*** Example built: build/examples/ant ***" />
  </target>

  <!-- ====================== -->
  <!-- Distributuion building -->
  <!-- ====================== -->

  <target name="dist"
    description="Build the FreeMarker distribution files"
  >
    <fail
      unless="has.all.explicit.boot.classpaths"
      message="All boot.classpath properties must be set in build.properties for dist!"
    />
    <antcall target="clean" />  <!-- To improve the reliability -->
    <antcall target="_dist" />
  </target>

  <target name="_dist"
    depends="jar, javadoc, manual"
    description="(Used internally; don't call it)"
  >
    <!-- Copy jars and sources and such into the distro -->
    <delete dir="${dist.dir}" />
    <mkdir dir="${dist.dir}" />
    
    <!-- Copy txt-s -->
    <copy todir="${dist.dir}" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <include name="*.txt" />
      </fileset>
    </copy>
    <replace
      file="${dist.dir}/README.txt"
      token="{version}"
      value="${version}"
    />

    <!-- Copy binary -->
    <copy file="build/freemarker.jar" tofile="${dist.dir}/freemarker.jar" />

    <!-- Copy documentation -->
    <mkdir dir="${dist.dir}/documentation" />
    <copy file="src/dist/index.html" todir="${dist.dir}/documentation" />
    <copy todir="${dist.dir}/documentation/_html" includeEmptyDirs="no">
      <fileset dir="build/manual" />
    </copy>
    <copy todir="${dist.dir}/documentation/_html/api" includeEmptyDirs="no">
      <fileset dir="build/api" />
    </copy>
    
    <copy todir="${dist.dir}/source" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <exclude name="**/*.bak" />
        <exclude name="**/*.~*" />
        <include name="src/**" />
        <include name="examples/**" />
        <include name=".settings/**" />
        <include name="*.xml" />
        <include name="*.sample" />
        <include name="*.txt" />
        <include name="osgi.bnd" />
        <include name=".classpath" />
        <include name=".project" />
        <include name=".git*" />
      </fileset>
    </copy>
    
    <!-- Package the distro -->
    <property name="freemarker.tar" value="build/freemarker-${version}.tar" />
    <property name="freemarker.gzip" value="${freemarker.tar}.gz" />
    <delete file="${freemarker.tar}" />
    <tar tarfile="${freemarker.tar}" basedir="${dist.dir}" />
    <delete file="${freemarker.gzip}" />
    <gzip zipfile="${freemarker.gzip}" src="${freemarker.tar}" />
    <delete file="${freemarker.tar}" />
  </target>
  
  <!--
    Uploads the freemarker.jar that is in the current DISTRIBUTION DIRECTORY
    into the place that the central Maven2 repository syncs itself with
    periodically. Of course it also uploads the Maven-specific metadata files.
    
    Use this after "dist" (without interleaving "clean").
  
    Note: maven-ant-tasks-x.x.x.jar must be added to ${ANT_HOME}/lib for
      this to work. Get it here: http://maven.apache.org/download.html
  -->
  <target name="maven-upload" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <echo file="build/pom.xml"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker-gae</artifactId>
  <version>${version}</version>
  <packaging>jar</packaging>
  <name>FreeMarker</name>
  <description>
    FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
  </description>
  <url>http://freemarker.org</url>
  <licenses>
    <license>
      <name>BSD-style license</name>
      <url>http://freemarker.org/LICENSE.txt</url>
    </license>
  </licenses>
  <scm>
    <url>https://github.com/freemarker/freemarker</url>
    <connection>scm:git:git://github.com/freemarker/freemarker.git</connection>
  </scm>
  <dependencies>
    <!-- no required dependencies -->
  </dependencies>
</project>
]]></echo>
    
    <jar destfile="build/maven-source-attachment.jar">
      <fileset dir="src/main/java" />
      <fileset dir="src/main/resources" />
    </jar>

    <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
   
    <input
       validargs="y,n"
       addproperty="mavenUpload.answer"
    >
You are about uploading
${dist.dir}/freemarker.jar
into the Maven central repostiry sync. directory.
Be sure that's the final (released) variation there,
and that the version number is correct.
Proceed? </input>
    <condition property="mavenUpload.yes">
      <equals arg1="y" arg2="${mavenUpload.answer}"/>
    </condition>
    <fail unless="mavenUpload.yes" message="Task aborted by user." />
   
    <input
      message="Enter your SourceForge.net user name: "
      addproperty="mavenUpload.user"
    />
    <input
      message="Enter your SourceForge.net password (WILL BE DISPLAYED AS YOU TYPE IT!): "
      addproperty="mavenUpload.password"
    />
   
    <artifact:deploy file="${dist.dir}/freemarker.jar">
      <remoteRepository url="sftp://web.sourceforge.net/home/groups/f/fr/freemarker/htdocs/maven2">
        <authentication
            username="${mavenUpload.user},freemarker"
            password="${mavenUpload.password}"
         />
      </remoteRepository>
      <pom file="build/pom.xml" />
      <attach file="build/maven-source-attachment.jar" classifier="sources" />
    </artifact:deploy>
    
    <echo>**********************************************</echo>
    <echo>CLEAR THE SCREEN, NOW! Your password is on it!</echo>
    <echo>**********************************************</echo>
  </target>
  
  
  <!-- ================================================================== -->
  <!-- Eclipse                                                            -->
  <!-- ================================================================== -->

  <property name="eclipseFeatureFileName" value="org.freemarker.freemarker.feature_${versionForOSGi}.jar" />
  <property name="eclipseSourceFeatureFileName" value="org.freemarker.freemarker.source.feature_${versionForOSGi}.jar" />
  <property name="eclipsePluginFileName" value="org.freemarker.freemarker_${versionForOSGi}.jar" />
  <property name="eclipseSourcePluginFileName" value="org.freemarker.freemarker.source_${versionForOSGi}.jar" />
  
  <target name="eclipse-update-site" depends="jar">
    <delete dir="build/eclipse" />

    <!-- Create org.freemarker.freemarker feature: -->
    
    <mkdir dir="build/eclipse/freemarker/plugins" />
    <copy
        file="build/freemarker.jar"
        tofile="build/eclipse/freemarker/plugins/org.freemarker.freemarker_${versionForOSGi}.jar"
    />
    
    <mkdir dir="build/eclipse/freemarker/features/tmp" />
    <echo file="build/eclipse/freemarker/features/tmp/feature.xml"><![CDATA[<?xml version="1.0"?>
<feature
    id="org.freemarker.freemarker"
    label="FreeMarker"
    version="${versionForOSGi}">

  <description url="http://freemarker.org">
    Adds barebone FreeMarker as a plug-in (OSGi bundle) to Eclipse.
  </description>

  <license><!--
    -->FreeMarker and this plug-in is provided under the terms and conditions <!--
    -->of a BSD-style license, available at http://freemarker.org/LICENSE.txt.<!--
  --></license>

  <plugin
      id="org.freemarker.freemarker"
      download-size="0"
      install-size="0"
      version="${versionForOSGi}"
      unpack="false"
  />
</feature>
    ]]></echo>
    <jar
        basedir="build/eclipse/freemarker/features/tmp"
        destfile="build/eclipse/freemarker/features/${eclipseFeatureFileName}"
    />
    <delete dir="build/eclipse/freemarker/features/tmp" />

    <!-- Create org.freemarker.freemarker.source feature: -->
    
    <mkdir dir="build/eclipse/freemarker/plugins" />
    <jar 
        basedir="src/main/java" jarfile="build/eclipse/freemarker/plugins/org.freemarker.freemarker.source_${versionForOSGi}.jar" 
    >
      <manifest>
        <attribute name="Bundle-SymbolicName" value="${moduleOrg}.${moduleName}.source" />
        <attribute name="Bundle-Version" value="${versionForOSGi}" />
        <attribute name="Bundle-License" value="BSD-style, see: http://freemarker.org/LICENSE.txt" />
        <attribute name="Bundle-Vendor" value="freemarker.org" />
        <attribute name="Eclipse-SourceBundle" value='org.freemarker.freemarker;version="${versionForOSGi}";roots:="."' />
      </manifest>
    </jar>
    
    <mkdir dir="build/eclipse/freemarker/features/tmp" />
    <echo file="build/eclipse/freemarker/features/tmp/feature.xml"><![CDATA[<?xml version="1.0"?>
<feature
    id="org.freemarker.freemarker.source"
    label="FreeMarker source"
    version="${versionForOSGi}">

  <description url="http://freemarker.org">
    Adds source code attachment to the barebone FreeMarker plug-in.
  </description>

  <license><!--
    -->FreeMarker and this plug-in is provided under the terms and conditions <!--
    -->of a BSD-style license, available at http://freemarker.org/LICENSE.txt.<!--
  --></license>

  <plugin
      id="org.freemarker.freemarker.source"
      download-size="0"
      install-size="0"
      version="${versionForOSGi}"
      unpack="false"
  />
</feature>
    ]]></echo>
    <jar
        basedir="build/eclipse/freemarker/features/tmp"
        destfile="build/eclipse/freemarker/features/${eclipseSourceFeatureFileName}"
    />
    <delete dir="build/eclipse/freemarker/features/tmp" />

    <!-- Create site: -->

    <echo file="build/eclipse/freemarker/site.xml"><![CDATA[<?xml version="1.0"?>
<site>
  <feature url="features/${eclipseFeatureFileName}"
      id="org.freemarker.freemarker"
      version="${versionForOSGi}">
    <category name="core" />
    <category name="core-with-sources" />
  </feature>
  <feature url="features/${eclipseSourceFeatureFileName}"
      id="org.freemarker.freemarker.source"
      version="${versionForOSGi}">
    <category name="core-with-sources" />
  </feature>
  <category-def name="core" label="FreeMarker core">
    <description>
      Features that are used as dependencies of other products, but do nothing visible themselves.
    </description>
  </category-def>
  <category-def name="core-with-sources" label="FreeMarker core with sources">
    <description>
      Features that are used as dependencies of other products, but do nothing visible themselves.
      Includes source code attachments.
    </description>
  </category-def>
</site>
    ]]></echo>
    <echo message="**************************************************************" />
    <echo message="The new Eclipse update site is created in:" />
    <echo message="${basedir}/build/eclipse/freemarker" />
    <echo message="You can use this directory as a local update site in Eclipse," />
    <echo message="or if you are an admin who makes a release, you should replace" />
    <echo message="http://freemarker.org/eclipse/freemarker with this directory." />
    <echo message="**************************************************************" />
  </target>
  
  
  <!-- ================================================================== -->
  <!-- Dependency management (keep it exactly identical for all projects) -->
  <!-- ================================================================== -->
  
  <target name="_autoget-deps" unless="deps.available">
    <antcall target="update-deps" />
  </target>
  
  <target name="update-deps"
    description="Gets the latest version of the dependencies from the Web"
  >
    <echo>Getting dependencies...</echo>
    <echo>-------------------------------------------------------</echo>
    <ivy:settings id="remote" url="http://freemarker.org/repos/ivy/ivysettings-remote.xml" />
    <!-- Build an own repository that will serve us even offline: -->
    <ivy:retrieve settingsRef="remote" sync="true"
      ivypattern=".ivy.part/repo/[organisation]/[module]/ivy-[revision].xml"
      pattern=".ivy.part/repo/[organisation]/[module]/[artifact]-[revision].[ext]"
    />
    <echo>-------------------------------------------------------</echo>
    <echo>*** Successfully acquired dependencies from the Web ***</echo>
    <echo>Eclipse users: Now right-click on ivy.xml and Resolve! </echo>
    <echo>-------------------------------------------------------</echo>
    <!-- Only now that we got all the dependencies will we delete anything. -->
    <!-- Thus a net or repo outage doesn't left us without the dependencies. -->

    <!-- Save the resolution cache from the soon coming <delete>: -->
    <move todir=".ivy.part/update-deps-reso-cache">
      <fileset dir=".ivy/update-deps-reso-cache" />
    </move>
    <!-- Drop all the old stuff: -->
    <delete dir=".ivy" />
    <!-- And use the new stuff instead: -->
    <move todir=".ivy">
      <fileset dir=".ivy.part" />
    </move>
  </target>

  <!-- Do NOT call this from 'clean'; offline guys would stuck after that. -->
  <target name="clean-deps"
    description="Deletes all dependencies"
  >
    <delete dir=".ivy" />
  </target>

  <target name="publish-override" depends="jar"
    description="Ivy-publishes THIS project locally as an override"
  >
    <ivy:resolve />
    <ivy:publish
      pubrevision="${moduleBranch}-branch-head"
      artifactspattern="build/[artifact].[ext]"
      overwrite="true" forcedeliver="true"
      resolver="freemarker-devel-local-override"
    >
      <artifact name="freemarker" type="jar" ext="jar" />
    </ivy:publish>
    <delete file="build/ivy.xml" />  <!-- ivy:publish makes this -->
    <echo>-------------------------------------------------------</echo>
    <echo>*** Don't forget to `ant unpublish-override` later! ***</echo>
  </target>

  <target name="unpublish-override"
    description="Undoes publish-override (made in THIS project)"
  >
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override/${moduleOrg}/${moduleName}" />
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache/${moduleOrg}/${moduleName}" />
  </target>  

  <target name="unpublish-override-all"
    description="Undoes publish-override-s made in ALL projects"
  >
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override" />
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache" />
  </target>  

  <target name="uninstall"
    description="Deletes external files created by FreeMarker developement"
  >
    <delete dir="${user.home}/.ivy2/freemarker-devel-cache" />
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override" />
    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache " />
  </target>

  <target name="report-deps"
    description="Creates a HTML document that summarizes the dependencies."
  >
    <mkdir dir="build/deps-report" />
    <ivy:resolve />
    <ivy:report todir="build/deps-report" />
  </target>
  
  <!--
    This meant to be called on the Continuous Integration server, so the
    integration builds appear in the freemarker.org public Ivy repository.
    The artifacts must be already built.
  -->
  <target name="server-publish-last-build"
    description="(For the Continuous Integration server only)"
  >
    <delete dir="build/dummy-server-ivy-repo" />
    <ivy:resolve />
    <ivy:publish
      pubrevision="${moduleBranch}-branch-head"
      artifactspattern="build/[artifact].[ext]"
      overwrite="true" forcedeliver="true"
      resolver="server-publishing-target"
    >
      <artifact name="freemarker" type="jar" ext="jar" />
    </ivy:publish>
    <delete file="build/ivy.xml" />  <!-- ivy:publish makes this -->
  </target>

  <target name="archive" depends=""
    description='Archives project with Git repo into the "archive" directory.'
  >
    <mkdir dir="archive" />
    <tstamp>
      <format property="tstamp" pattern="yyyyMMdd-HHmm" />
    </tstamp>
    <delete file="archive/freemarker-git-${tstamp}.tar" />
    <delete file="archive/freemarker-git-${tstamp}.tar.bz2" />
    <tar tarfile="archive/freemarker-git-${tstamp}.tar"
      basedir="."
      longfile="gnu"
      excludes="build/** .build/** .bin/** .ivy/**  archive/**"
    />
    <bzip2 src="archive/freemarker-git-${tstamp}.tar"
        zipfile="archive/freemarker-git-${tstamp}.tar.bz2" />
    <delete file="archive/freemarker-git-${tstamp}.tar" />
  </target>
    
</project>
