<?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-gae" />
  <!-- 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.7">
    <isset property="boot.classpath.j2se1.7"/>
  </condition>
  <condition property="has.explicit.boot.classpath.j2se1.8">
    <isset property="boot.classpath.j2se1.8"/>
  </condition>
  <condition property="has.all.explicit.boot.classpaths">
    <and>
      <isset property="has.explicit.boot.classpath.j2se1.8"/>
    </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.7" value="${sun.boot.class.path}" />
  <property name="boot.classpath.j2se1.8" value="${sun.boot.class.path}" />
  
  <!-- For checking the correctness of the boot.classpath.j2se* -->
  <available classpath="${boot.classpath.j2se1.7}"
    classname="java.nio.file.Path" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.7.correct"
  />
  <available classpath="${boot.classpath.j2se1.8}"
    classname="java.time.Instant" ignoresystemclasses="true" 
    property="boot.classpath.j2se1.8.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}-${mavenVersion}" />
  <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" />
    <delete dir="META-INF" />
  </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>

  <target name="init">
    <mkdir dir="build"/>
  </target>

  <property name="ivy.install.version" value="2.5.0" />
  <property name="ivy.home" value="${user.home}/.ant" />
  <property name="ivy.jar.dir" value="${ivy.home}/lib" />
  <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
  <target name="download-ivy">
    <mkdir dir="${ivy.jar.dir}"/>
    <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
         dest="${ivy.jar.file}" usetimestamp="true"/>
  </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.7.correct"><!--
      -->The "boot.classpath.j2se1.7" property value (${boot.classpath.j2se1.7}) <!--
      -->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.8.correct"><!--
      -->The "boot.classpath.j2se1.8" property value (${boot.classpath.j2se1.8}) <!--
      -->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 7: ${boot.classpath.j2se1.7};<!--
      -->Java 8: ${boot.classpath.j2se1.8}<!--
    --></echo>

    <!-- Comment out @SuppressFBWarnings, as it causes compilation warnings in dependent Gradle projects -->    
    <delete dir="build/src-main-java-filtered" />
    <mkdir dir="build/src-main-java-filtered" />
    <copy toDir="build/src-main-java-filtered">
      <fileset dir="src/main/java" excludes="**/AdhocTest*" />
    </copy>
    <replaceregexp
        flags="gs" encoding="utf-8"
        match='(@SuppressFBWarnings\(.+?"\s*\))' replace="/*\1*/"
    >
      <fileset dir="build/src-main-java-filtered" includes="**/*.java" />
    </replaceregexp>
    <replaceregexp
        flags="gs" encoding="utf-8"
        match='(import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;)' replace="// \1"
    >
      <fileset dir="build/src-main-java-filtered" includes="**/*.java" />
    </replaceregexp>
    
    <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.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep"
      bootclasspath="${boot.classpath.j2se1.7}"
      excludes="
        freemarker/core/_Java?*Impl.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="build/src-main-java-filtered" />
        <pathelement location="build/generated-sources" />
      </src>
    </javac>

    <ivy:cachepath conf="build.base" pathid="ivy.dep" />
    <javac srcdir="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.8" source="1.8" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep"
      bootclasspath="${boot.classpath.j2se1.8}"
      includes="freemarker/core/_Java8Impl.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="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jsp2.0"
      bootclasspath="${boot.classpath.j2se1.7}"
      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="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jsp2.1"
      bootclasspath="${boot.classpath.j2se1.7}"
      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="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.0"
      bootclasspath="${boot.classpath.j2se1.7}"
      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="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.2"
      bootclasspath="${boot.classpath.j2se1.7}"
      includes="
        freemarker/ext/jython/_Jython22VersionAdapter.java"
    />
    
    <ivy:cachepath conf="build.jython2.5" pathid="ivy.dep.jython2.5" />
    <javac srcdir="build/src-main-java-filtered" destdir="build/classes" deprecation="off" 
      debug="on" optimize="off" target="1.7" source="1.7" encoding="utf-8"
      includeantruntime="false"
      classpathref="ivy.dep.jython2.5"
      bootclasspath="${boot.classpath.j2se1.7}"
      includes="
        freemarker/ext/jython/_Jython25VersionAdapter.java"
    />
    
    <rmic base="build/classes" classpathref="ivy.dep"
      includes="build/src-main-java-filtered/freemarker/debug/impl/Rmi*Impl.class"
      verify="yes" stubversion="1.2"
    />
    
    <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="src/dist/jar/META-INF" includes="*" />
    </copy>
    <delete dir="build/src-main-java-filtered" />
  </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.8" source="1.8" encoding="utf-8"
      includeantruntime="false"
      classpath="build/classes"
      classpathref="ivy.dep.build.test"
      bootclasspath="${boot.classpath.j2se1.8}"
    />
    <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" logfailedtests="true" 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 name="_rawJavadoc" depends="compile">
    <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/ant/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="manualOnline" depends="init" description="Build the Manual to be upload to the FreeMarker homepage" >
    <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="manualOnline_zh_CN" depends="init" description="Build the Manual to be upload to the FreeMarker homepage" >
    <u:manual offline="false" locale="zh_CN" />
  </target>
  

  <!-- ===================== -->
  <!-- Distribution 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="test, 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.md" />
        <!-- LICENSE is binary-distribution-specific, and is copied later. -->
        <include name="NOTICE" />
        <include name="RELEASE-NOTES" />
      </fileset>
    </copy>
    <replace
      file="${dist.bin.dir}/README.md"
      token="{version}"
      value="${version}"
    />
    <!-- Copy binary-distribution-specific files: -->
    <copy todir="${dist.bin.dir}/">
      <fileset dir="src/dist/bin/">
        <exclude name="rat-excludes" />
      </fileset>
    </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 extensionless files: -->
    <copy todir="${dist.src.dir}" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <include name="README.md" />
        <include name="LICENSE" />
        <include name="NOTICE" />
        <include name="RELEASE-NOTES" />
      </fileset>
    </copy>
    <replace
      file="${dist.src.dir}/README.md"
      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="*.xml" />
        <include name="*.sample" />
        <include name="*.txt" />
        <include name="osgi.bnd" />
        <include name=".git*" />
        <include name="rat-excludes" />
      </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 file for "${archive.gzip}"...</echo>
      <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>
    Google App Engine compliant variation of FreeMarker.
    FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
  </description>
  <url>https://freemarker.apache.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/freemarker.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/freemarker.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=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.apache.org</post>
        <subscribe>dev-subscribe@freemarker.apache.org</subscribe>
        <unsubscribe>dev-unsubscribe@freemarker.apache.org</unsubscribe>
        <archive>http://mail-archives.apache.org/mod_mbox/freemarker-dev/</archive>
    </mailingList>
    <mailingList>
        <name>FreeMarker commit and Jira notifications list</name>
        <post>notifications@freemarker.apache.org</post>
        <subscribe>notifications-subscribe@freemarker.apache.org</subscribe>
        <unsubscribe>notifications-unsubscribe@freemarker.apache.org</unsubscribe>
        <archive>http://mail-archives.apache.org/mod_mbox/freemarker-notifications/</archive>
    </mailingList>
    <mailingList>
      <name>FreeMarker management private</name>
      <post>private@freemarker.apache.org</post>
    </mailingList>
  </mailingLists>
  
  <dependencies>
    <!-- no required dependencies -->
  </dependencies>
</project>
]]></echo>
  </target>

  <target name="maven-install" depends="jar, maven-pom"
      description="Installs the jar into the local maven repo (without signing)">
		<exec executable="${mvnCommand}" failonerror="true">
			<arg value="install:install-file" />
			<arg value="-Dfile=build/freemarker.jar" />
			<arg value="-DpomFile=build/pom.xml" />
		</exec>
  </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" />
      <fileset dir="${dist.src.dir}/src/main/javacc/" />
      <fileset dir="build/generated-sources/java/" includes="**/*.java" />
      <metainf dir="${dist.src.dir}" includes="LICENSE, NOTICE" />
    </jar>

    <mkdir dir="build/javadoc-attachment-metainf"/>
    <copy todir="build/javadoc-attachment-metainf">
      <fileset dir="${dist.bin.dir}" includes="NOTICE" />
    </copy>
    <copy todir="build/javadoc-attachment-metainf">
      <fileset dir="src/dist/javadoc/META-INF/" />
    </copy>
    <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.6: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="-Dsources=build/maven-source-attachment.jar" />
			<arg value="-Djavadoc=build/maven-javadoc-attachment.jar" />
      <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 (except for SNAPSHOT versions).</echo>
    <echo>Note that before releasing, voting is needed!</echo>
    <echo>*****************************************************************</echo>
  </target>

  <!-- ================================================================= -->
  <!-- CI (like Travis).......................                           -->
  <!-- ================================================================= -->

  <target name="ci-setup">
    <ivy:settings file="ivysettings-ci.xml" />
  </target>

  <target name="ci"
  	depends="ci-setup, clean, jar, test, javadoc"
  	description="CI should invoke this task"
  />

  <!-- ================================================================== -->
  <!-- Dependency management                                              -->
  <!-- ================================================================== -->
  
  <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" depends="jar"
    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]" />

    <!--
      Extract META-INF/MANITSET.MF from freemarker.jar and put it into the project directory for Eclipse (this is
      needed if you want to reference freemarker source code in the context of OSGI development with Eclipse)
    -->
    <unzip src="build/freemarker.jar" dest=".">
      <patternset>
        <include name="META-INF/*"/>
        <exclude name="META-INF/LICENSE"/>
        <exclude name="META-INF/NOTICE"/>
      </patternset>
    </unzip>
    <echo file="META-INF/DO-NOT-EDIT.txt"><!--
      -->Do not edit the files in this directory! They are extracted from freemarker.jar as part of&#x0a;<!--
      -->the ide-dependencies Ant task, because Eclipse OSGi support expects them to be here.<!--
    --></echo>
  </target>

  <!-- ================================================================== -->
  <!-- Misc.                                                              -->
  <!-- ================================================================== -->

  <target name="rat" description="Generates Apache RAT report">
    <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-root.txt">
      <fileset dir="" excludesfile="rat-excludes" />
    </rat:report>
    <rat:report reportFile="build/rat-report-dist-src.txt">
      <fileset dir="${dist.src.dir}" excludesfile="rat-excludes" />
    </rat:report>
    <rat:report reportFile="build/rat-report-dist-bin.txt">
      <fileset dir="${dist.bin.dir}" excludesfile="src/dist/bin/rat-excludes" />
    </rat:report>
    <echo level="info"><!--
    -->Rat reports were written into build/rat-report-*.txt<!--
    --></echo>
  </target>
    
</project>
