<?xml version="1.0" encoding="UTF-8"?>
<!--
  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 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:bnd="http://www.aqute.biz/bnd"
  xmlns:rat="antlib:org.apache.rat.anttasks"
  xmlns:u="http://freemarker.org/util"
>

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

  <!-- Maven project coordinates: -->
  <property name="mavenGroupId" value="org.freemarker" />
  <property name="mavenArtifactId" value="freemarker" />
  <!-- 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.5">
    <isset property="boot.classpath.j2se1.5"/>
  </condition>
  <condition property="has.explicit.boot.classpath.j2se1.6">
    <isset property="boot.classpath.j2se1.6"/>
  </condition>
  <condition property="has.all.explicit.boot.classpaths">
    <and>
      <isset property="has.explicit.boot.classpath.j2se1.5"/>
      <isset property="has.explicit.boot.classpath.j2se1.6"/>
    </and>
  </condition>
  <available property="atLeastJDK8" classname="java.util.function.Predicate"/>

  <!-- When boot.classpath.j2se* is missing, these will be the defaults: -->
  <!-- Note: Target "dist" doesn't allow using these. -->
  <property name="boot.classpath.j2se1.5" value="${sun.boot.class.path}" />
  <property name="boot.classpath.j2se1.6" value="${sun.boot.class.path}" />
  
  <!-- For checking the correctness of the boot.classpath.j2se* -->
  <available classpath="${boot.classpath.j2se1.5}"
    classname="java.util.concurrent.ConcurrentHashMap" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.5.correct"
  />
  <available classpath="${boot.classpath.j2se1.6}"
    classname="java.util.ServiceLoader" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.6.correct"
  />
  
  <!-- 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" />
  <property name="dist.archiveBaseName" value="apache-${mavenArtifactId}-${version}" />
  <property name="dist.bin.dir" value="${dist.dir}/bin/${dist.archiveBaseName}-bin" />
  <property name="dist.src.dir" value="${dist.dir}/src/${dist.archiveBaseName}-src" />
  
  <!-- ================================================================== -->
  <!-- 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"
    />
    <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.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>
    <fail unless="boot.classpath.j2se1.6.correct"><!--
      -->The "boot.classpath.j2se1.6" property value (${boot.classpath.j2se1.6}) <!--
      -->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:<!--
      -->Java 5: ${boot.classpath.j2se1.5}; <!--
      -->Java 6: ${boot.classpath.j2se1.6}<!--
    --></echo>

    <mkdir dir="build/classes" />
    
    <!-- Note: the "build.base" conf doesn't include optional FreeMarker dependencies. -->
    <ivy:cachepath conf="build.base" pathid="ivy.dep" />
    <javac destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep"
      bootclasspath="${boot.classpath.j2se1.5}"
      excludes="
        freemarker/core/_Java6Impl.java,
        freemarker/ext/jsp/**,
        freemarker/ext/servlet/**,
        freemarker/cache/WebappTemplateLoader.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>

    <ivy:cachepath conf="build.base" pathid="ivy.dep" />
    <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"
      bootclasspath="${boot.classpath.j2se1.6}"
      includes="freemarker/core/_Java6Impl.java"
    />
    
    <rmic
      base="build/classes" includes="freemarker/debug/impl/Rmi*Impl.class"
      classpathref="ivy.dep"
      verify="yes" stubversion="1.2"
    />

    <ivy:cachepath conf="build.jsp2.0" pathid="ivy.dep.jsp2.0" />
    <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.jsp2.0"
      bootclasspath="${boot.classpath.j2se1.5}"
      includes="
        freemarker/ext/jsp/**,
        freemarker/ext/servlet/**,
        freemarker/cache/WebappTemplateLoader.java"
      excludes="
        freemarker/ext/jsp/_FreeMarkerPageContext21.java,
        freemarker/ext/jsp/FreeMarkerJspFactory21.java,
        freemarker/ext/jsp/FreeMarkerJspApplicationContext.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.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jsp2.1"
      bootclasspath="${boot.classpath.j2se1.5}"
      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.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.0"
      bootclasspath="${boot.classpath.j2se1.5}"
      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.5" source="1.5" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.2"
      bootclasspath="${boot.classpath.j2se1.5}"
      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.5" source="1.5" 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, DISCLAIMER" />
    </copy>
    <copy toDir="build/classes/META-INF">
      <fileset dir="src/dist/jar/META-INF" includes="*" />
    </copy>
  </target>

  <target name="compileTest" depends="compile">
    <mkdir dir="build/test-classes" />
  
    <ivy:cachepath conf="build.test" pathid="ivy.dep.build.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.build.test"
      bootclasspath="${boot.classpath.j2se1.6}"
    />
    <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">
    <mkdir dir="build/junit-reports" />
    <ivy:cachepath conf="run.test" pathid="ivy.dep.run.test" />
    <junit haltonfailure="on" fork="true" forkmode="once">
      <classpath>
        <pathelement path="build/test-classes" />
        <pathelement path="build/classes" />
        <path refid="ivy.dep.run.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>
  
  <!-- ================================================================= -->
  <!-- Generate docs                                                     -->
  <!-- ================================================================= -->

  <target depends="javacc" name="_rawJavadoc">
    <!-- 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"
      failonerror="true"
      charset="UTF-8"
      docencoding="UTF-8"
      locale="en_US"
    >
      <link href="http://docs.oracle.com/javase/8/docs/api/"/>
    </javadoc>
    <delete dir="build/javadoc-sources" />
  </target>

  <target name="javadoc" depends="_rawJavadoc, _fixJDK8JavadocCSS" description="Build the JavaDocs" />
  
  <target name="_fixJDK8JavadocCSS" depends="_rawJavadoc" if="atLeastJDK8">
    <property name="file" value="build/api/stylesheet.css" />
        
    <available file="${file}" property="stylesheet.available"/>
    <fail unless="stylesheet.available">CSS file not found: ${file}</fail>
    <echo>Fixing JDK 8 CSS in ${file}</echo>
    
    <!-- Tell that it's modified: -->
    <replaceregexp
        file="${file}" flags="gs" encoding="utf-8"
        match="/\* (Javadoc style sheet) \*/" replace="/\* \1 - JDK 8 usability fix regexp substitutions applied \*/"
    />

    <!-- Remove broken link: -->
    <replaceregexp
        file="${file}" flags="gs" encoding="utf-8"
        match="@import url\('resources/fonts/dejavu.css'\);\s*" replace=""
    />
    
    <!-- Font family fixes: -->
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="['&quot;]DejaVu Sans['&quot;]" replace="Arial"
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="['&quot;]DejaVu Sans Mono['&quot;]" replace="'Courier New'"
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="['&quot;]DejaVu Serif['&quot;]" replace="Arial"
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="(?&lt;=[\s,:])serif\b" replace="sans-serif"
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="(?&lt;=[\s,:])Georgia,\s*" replace=""
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="['&quot;]Times New Roman['&quot;],\s*" replace=""
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="(?&lt;=[\s,:])Times,\s*" replace=""
    />
    <replaceregexp
        file="${file}" flags="gsi" encoding="utf-8"
        match="(?&lt;=[\s,:])Arial\s*,\s*Arial\b" replace="Arial"
    />
    
    <!-- "Parameters:", "Returns:", "Throws:", "Since:", "See also:" etc. fixes: -->
    <property name="ddSelectorStart" value="(?:\.contentContainer\s+\.(?:details|description)|\.serializedFormContainer)\s+dl\s+dd\b.*?\{[^\}]*\b" />
    <property name="ddPropertyEnd" value="\b.+?;" />
    <!-- - Put back description (dd) indentation: -->
    <replaceregexp
        file="${file}" flags="gs" encoding="utf-8"
        match="(${ddSelectorStart})margin${ddPropertyEnd}" replace="\1margin: 5px 0 10px 20px;"
    />
    <!-- - No monospace font for the description (dd) part: -->
    <replaceregexp
        file="${file}" flags="gs" encoding="utf-8"
        match="(${ddSelectorStart})font-family${ddPropertyEnd}" replace="\1"
    />
  </target>
  
  <!-- ====================== -->
  <!-- Manual                 -->
  <!-- ====================== -->
  
  <macrodef name="manual" uri="http://freemarker.org/util">
    <attribute name="offline" />
    <attribute name="locale" />
    <sequential>
      <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/@{locale}" destdir="build/manual/@{locale}"
        offline="@{offline}"
      />
    </sequential>
  </macrodef>
  
  <target name="manualOffline" depends="init" description="Build the Manual for offline use" >
    <u:manual offline="true" locale="en_US" />
  </target>

  <target name="manualFreemarkerOrg" depends="init" description="Build the Manual to be upload to freemarker.org" >
    <u:manual offline="false" locale="en_US" />
  </target>
  
  <target name="manualOffline_zh_CN" depends="init" description="Build the Manual for offline use" >
    <u:manual offline="true" locale="zh_CN" />
  </target>

  <target name="manualFreemarkerOrg_zh_CN" depends="init" description="Build the Manual to be upload to freemarker.org" >
    <u:manual offline="false" locale="zh_CN" />
  </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!"
    />
    <fail unless="atLeastJDK8" message="The release should be built with JDK 8+ (you may need to set JAVA_HOME)" />
    <antcall target="clean" />  <!-- To improve the reliability -->
    <antcall target="_dist" />
  </target>
  
  <target name="_dist"
    depends="jar, javadoc, manualOffline"
  >
    <delete dir="${dist.dir}" />

    <!-- ..................................... -->
    <!-- Binary distribution                   -->
    <!-- ..................................... -->
    
    <mkdir dir="${dist.bin.dir}" />
    
    <!-- Copy txt-s -->
    <copy todir="${dist.bin.dir}" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <include name="README" />
        <include name="LICENSE" />
        <!-- NOTICE is binary-distribution-specific, and is copied later. -->
        <include name="DISCLAIMER" />
        <include name="RELEASE-NOTES" />
      </fileset>
    </copy>
    <replace
      file="${dist.bin.dir}/README"
      token="{version}"
      value="${version}"
    />
    <!-- Copy binary-distribution-specific files: -->
    <copy todir="${dist.bin.dir}/">
      <fileset dir="src/dist/bin/" />
    </copy>

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

    <!-- Copy documentation -->
    <mkdir dir="${dist.bin.dir}/documentation" />
    
    <!--
      The US English Manual is the source of any translations and thus it's the
      only one that is guaranteed to be up to date when doing the release, so we
      only pack that into it.
    -->
    <copy todir="${dist.bin.dir}/documentation/_html" includeEmptyDirs="no">
      <fileset dir="build/manual/en_US" />
    </copy>
    <copy todir="${dist.bin.dir}/documentation/_html/api" includeEmptyDirs="no">
      <fileset dir="build/api" />
    </copy>
    
    <u:packageAndSignDist
        srcDir="${dist.bin.dir}/.."
        archiveNameWithoutExt="${dist.archiveBaseName}-bin"
    />

    <!-- ..................................... -->
    <!-- Source distribution                   -->
    <!-- ..................................... -->
    
    <mkdir dir="${dist.src.dir}" />

    <!-- Copy txt-s -->
    <copy todir="${dist.src.dir}" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <include name="README" />
        <include name="LICENSE" />
        <include name="NOTICE" />
        <include name="DISCLAIMER" />
        <include name="RELEASE-NOTES" />
      </fileset>
    </copy>
    <replace
      file="${dist.src.dir}/README"
      token="{version}"
      value="${version}"
    />
    
    <copy todir="${dist.src.dir}" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <exclude name="**/*.bak" />
        <exclude name="**/*.~*" />
        <exclude name="**/*.*~" />
        <include name="src/**" />
        <include name="examples/**" />
        <include name="*.xml" />
        <include name="*.sample" />
        <include name="*.txt" />
        <include name="osgi.bnd" />
        <include name=".git*" />
      </fileset>
    </copy>
    
    <u:packageAndSignDist
        srcDir="${dist.src.dir}/.."
        archiveNameWithoutExt="${dist.archiveBaseName}-src"
    />
  </target>

  <macrodef name="packageAndSignDist" uri="http://freemarker.org/util">
    <attribute name="srcDir" />
    <attribute name="archiveNameWithoutExt" />
    <sequential>
      <local name="archive.tar"/>
      <property name="archive.tar" value="build/dist/@{archiveNameWithoutExt}.tar" />
      <local name="archive.gzip"/>
      <property name="archive.gzip" value="${archive.tar}.gz" />
      <delete file="${archive.tar}" />
      <tar tarfile="${archive.tar}" basedir="@{srcDir}" />
      <delete file="${archive.gzip}" />
      <gzip zipfile="${archive.gzip}" src="${archive.tar}" />
      <delete file="${archive.tar}" />

      <echo>Signing "${archive.gzip}"...</echo>
      <!-- gpg may hang if it exists: -->
      <delete file="${archive.gzip}.asc" />
      <exec executable="${gpgCommand}" failonerror="true">
        <arg value="--armor" />
        <arg value="--output" />
        <arg value="${archive.gzip}.asc" />
        <arg value="--detach-sig" />
        <arg value="${archive.gzip}" />
      </exec>
      
      <echo>*** Signature verification: ***</echo>
      <exec executable="${gpgCommand}" failonerror="true">
        <arg value="--verify" />
        <arg value="${archive.gzip}.asc" />
        <arg value="${archive.gzip}" />
      </exec>
      <local name="signatureGood" />
      <local name="signatureGood.y" />
      <input
         validargs="y,n"
         addproperty="signatureGood"
      >Is the above signer the intended one for Apache releases?</input>
      <condition property="signatureGood.y">
        <equals arg1="y" arg2="${signatureGood}"/>
      </condition>
      <fail unless="signatureGood.y" message="Task aborted by user." />
    
      <echo>Creating checksum files for "${archive.gzip}"...</echo>
      <checksum file="${archive.gzip}" fileext=".md5" algorithm="MD5" forceOverwrite="yes" />
      <checksum file="${archive.gzip}" fileext=".sha512" algorithm="SHA-512" forceOverwrite="yes" />
    </sequential>
  </macrodef>
  
  <target name="maven-pom">
    <echo file="build/pom.xml"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<!--
  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 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>
  
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>17</version>
  </parent>
  
  <groupId>${mavenGroupId}</groupId>
  <artifactId>${mavenArtifactId}</artifactId>
  <version>${mavenVersion}</version>
  
  <packaging>jar</packaging>
  
  <name>Apache FreeMarker</name>
  <description>
    FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
  </description>
  <url>http://freemarker.org/</url>
  <organization>
    <name>Apache Software Foundation</name>
    <url>http://apache.org</url>
  </organization>
  
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>      
    </license>
  </licenses>
  
  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=incubator-freemarker.git</url>
    <tag>v${version}</tag>
  </scm>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/FREEMARKER/</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
        <name>FreeMarker developer list</name>
        <post>dev@freemarker.incubator.apache.org</post>
        <subscribe>dev-subscribe@freemarker.incubator.apache.org</subscribe>
        <unsubscribe>dev-unsubscribe@freemarker.incubator.apache.org</unsubscribe>
        <archive>http://mail-archives.apache.org/mod_mbox/incubator-freemarker-dev/</archive>
    </mailingList>
    <mailingList>
        <name>FreeMarker commit and Jira notifications list</name>
        <post>notifications@freemarker.incubator.apache.org</post>
        <subscribe>notifications-subscribe@freemarker.incubator.apache.org</subscribe>
        <unsubscribe>notifications-unsubscribe@freemarker.incubator.apache.org</unsubscribe>
        <archive>http://mail-archives.apache.org/mod_mbox/incubator-freemarker-notifications/</archive>
    </mailingList>
    <mailingList>
      <name>FreeMarker management private</name>
      <post>private@freemarker.incubator.apache.org</post>
    </mailingList>
  </mailingLists>
  
  <dependencies>
    <!-- no required dependencies -->
  </dependencies>
</project>
]]></echo>
  </target>
  
  <!--
    Uploads the freemarker.jar that is in the current DISTRIBUTION DIRECTORY
    to a Maven repository (snapshot or central).
    Use this after "dist" (without interleaving "clean").
  -->
  <target name="maven-dist" depends="maven-pom"
      description="Releases the already built distro to a Maven repository">
    <jar destfile="build/maven-source-attachment.jar">
      <fileset dir="${dist.src.dir}/src/main/java" />
      <fileset dir="${dist.src.dir}/src/main/resources" />
      <metainf dir="${dist.src.dir}" includes="LICENSE, NOTICE, DISCLAIMER" />
    </jar>

    <mkdir dir="build/javadoc-attachment-metainf"/>
    <copy todir="build/javadoc-attachment-metainf">
      <fileset dir="${dist.bin.dir}" includes="LICENSE, DISCLAIMER" />
    </copy>
    <copy file="src/dist/javadoc/META-INF/NOTICE" todir="build/javadoc-attachment-metainf" />
    <jar destfile="build/maven-javadoc-attachment.jar">
      <fileset dir="${dist.bin.dir}/documentation/_html/api" />
      <metainf dir="build/javadoc-attachment-metainf" includes="**/*" />
    </jar>
    <delete dir="build/javadoc-attachment-metainf" />

    <!-- These were copy-pasted from the org.apacha:apache parent POM: -->
    <property name="maven-server-id" value="apache.releases.https" />
    <condition property="maven-repository-url"
        value="https://repository.apache.org/content/repositories/snapshots/"
        else="https://repository.apache.org/service/local/staging/deploy/maven2">
      <matches pattern="-SNAPSHOT$" string="${mavenVersion}" />
    </condition>
    <!-- Snapshot repo: https://repository.apache.org/content/repositories/snapshots/ -->
    <input
       validargs="y,n"
       addproperty="mavenUpload.answer"
    >
You are about uploading
${dist.bin.dir}/freemarker.jar
and its attachments with Maven coordinates
${mavenGroupId}:${mavenArtifactId}:${mavenVersion}
to this Maven repository:
${maven-repository-url}

Note that it's assumed that you have run `ant dist` just before this.
Proceed? </input>
    <condition property="mavenUpload.yes">
      <equals arg1="y" arg2="${mavenUpload.answer}"/>
    </condition>
    <fail unless="mavenUpload.yes" message="Task aborted by user." />
    
		<!-- Sign and deploy the main artifact -->
		<exec executable="${mvnCommand}" failonerror="true">
			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
      <!--
        As we use the gpg plugin instead of a normal Maven "deploy", sadly we can't just
        inherit the repo URL and repositoryId from the parent POM.
      -->
			<arg value="-Durl=${maven-repository-url}" />
			<arg value="-DrepositoryId=${maven-server-id}" />
			<arg value="-DpomFile=build/pom.xml" />
			<arg value="-Dfile=${dist.bin.dir}/freemarker.jar" />
      <arg value="-Pgpg" />
		</exec>

		<!-- Sign and deploy the sources artifact -->
		<exec executable="${mvnCommand}" failonerror="true">
			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
			<arg value="-Durl=${maven-repository-url}" />
			<arg value="-DrepositoryId=${maven-server-id}" />
			<arg value="-DpomFile=build/pom.xml" />
			<arg value="-Dfile=build/maven-source-attachment.jar" />
			<arg value="-Dclassifier=sources" />
      <arg value="-Pgpg" />
		</exec>

		<!-- Sign and deploy the javadoc artifact -->
		<exec executable="${mvnCommand}" failonerror="true">
			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
			<arg value="-Durl=${maven-repository-url}" />
			<arg value="-DrepositoryId=${maven-server-id}" />
			<arg value="-DpomFile=build/pom.xml" />
			<arg value="-Dfile=build/maven-javadoc-attachment.jar" />
			<arg value="-Dclassifier=javadoc" />
      <arg value="-Pgpg" />
		</exec>
    
    <echo>*****************************************************************</echo>
    <echo>Check the above lines for any Maven errors!</echo>
    <echo>Now you need to close and maybe release the staged repo on</echo>
    <echo>http://repository.apache.org.</echo>
    <echo>Note that before releasing, voting is needed!</echo>
    <echo>*****************************************************************</echo>
  </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>
  
  <target name="ide-dependencies" description="If your IDE has no Ivy support, this generates ide-lib/*.jar for it">
    <mkdir dir="ide-dependencies" />
    <delete includeEmptyDirs="true">  
      <fileset dir="ide-dependencies">  
         <include name="*/**" />  
      </fileset>  
    </delete>    
    <ivy:retrieve conf="IDE" pattern="ide-dependencies/[artifact]-[revision].[ext]" />
  </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="rat">
    <ivy:cachepath conf="rat" pathid="ivy.dep" />
    <taskdef
      uri="antlib:org.apache.rat.anttasks"
      resource="org/apache/rat/anttasks/antlib.xml"
      classpathref="ivy.dep"
    />  
    
    <rat:report reportFile="build/rat-report-src.txt">
        <fileset dir="src"/>
    </rat:report>
    <rat:report reportFile="build/rat-report-dist-src.txt">
        <fileset dir="build/dist/src"/>
    </rat:report>
    <rat:report reportFile="build/rat-report-dist-bin.txt">
        <fileset dir="build/dist/bin"/>
    </rat:report>
    <echo level="info"><!--
    -->Rat reports were written into build/rat-report-*.txt<!--
    --></echo>
  </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>
