<?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                                                         -->
  <!-- ================================================================== -->

  <!-- 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" />
  
  
  <!-- ================================================================== -->
  <!-- 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"
      />
    </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"
  >
    <!-- Copy jars and sources and such into the distro -->
    <delete dir="${dist.dir}" />
    <mkdir dir="${dist.dir}/bin" />
    <mkdir dir="${dist.dir}/src" />
    
    <!-- ..................................... -->
    <!-- Binary distribution                   -->
    <!-- ..................................... -->
    
    <!-- Copy txt-s -->
    <copy todir="${dist.dir}/bin" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <include name="README" />
        <include name="DISCLAIMER" />
        <include name="RELEASE-NOTES" />
        <!-- LICENSE and NOTICE are binary-distribution-specific, and are copied later. -->
      </fileset>
    </copy>
    <replace
      file="${dist.dir}/bin/README"
      token="{version}"
      value="${version}"
    />
    <!-- Copy binary-distribution-specific files: -->
    <copy todir="${dist.dir}/bin/">
      <fileset dir="src/dist/bin/" />
    </copy>

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

    <!-- Copy documentation -->
    <mkdir dir="${dist.dir}/bin/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.dir}/bin/documentation/_html" includeEmptyDirs="no">
      <fileset dir="build/manual/en_US" />
    </copy>
    <copy todir="${dist.dir}/bin/documentation/_html/api" includeEmptyDirs="no">
      <fileset dir="build/api" />
    </copy>
    
    <u:packageAndSignDist
        srcDir="${dist.dir}/bin"
        archiveNameWithoutExt="apache-freemarker-${version}-bin"
    />

    <!-- ..................................... -->
    <!-- Source distribution                        -->
    <!-- ..................................... -->

    <!-- Copy txt-s -->
    <copy todir="${dist.dir}/src" 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.dir}/src/README"
      token="{version}"
      value="${version}"
    />
    
    <copy todir="${dist.dir}/src" includeEmptyDirs="no">
      <fileset dir="." defaultexcludes="no">
        <exclude name="**/*.bak" />
        <exclude name="**/*.~*" />
        <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>
    
    <u:packageAndSignDist
        srcDir="${dist.dir}/src"
        archiveNameWithoutExt="apache-freemarker-${version}-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>org.freemarker</groupId>
  <artifactId>freemarker</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>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.dir}/src/src/main/java" />
      <fileset dir="${dist.dir}/src/src/main/resources" />
    </jar>

    <jar destfile="build/maven-javadoc-attachment.jar">
      <fileset dir="${dist.dir}/bin/documentation/_html/api" />
    </jar>

    <!-- These were copy-pasted from the org.apacha:apache parent POM: -->
    <property name="maven-server-id" value="apache.releases.https" />
    <property name="maven-repository-url" value="https://repository.apache.org/service/local/staging/deploy/maven2" />
    <!--
    Don't deploy to public snapshot repositories here!
    It isn't backward compatible as version ranges will pick them up.
    -->
    <input
       validargs="y,n"
       addproperty="mavenUpload.answer"
    >
You are about uploading
${dist.dir}/freemarker.jar
and its attachments to this Maven repository:
${maven-repository-url}
with Maven artifact version number ${mavenVersion}.
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.dir}/bin/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>
