<!--
  Copyright © 2009-2013, JoshuaTree. All Rights Reserved.
  Licensed to Joshua Tree Software, LLC under New BSD license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  JTS licenses this file to You under the New BSD License
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

       http://jts.us/License

   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 name="fortress-sentry" default="build" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"
         xmlns:artifact="antlib:org.apache.maven.artifact.ant">

    <target name="init">

        <!-- read properties from the build.properties, if any -->
        <property name="component-propfile" value="${basedir}/build.properties"/>
        <property file="${component-propfile}"/>

        <!-- read properties from the ${user.home}/propfile, if any -->
        <property name="user-propfile" value="${user.home}/build.properties"/>
        <property file="${user-propfile}"/>

        <property name="project.name" value="Fortress Java Sentry"/>
        <property name="name" value="fortressSentry"/>
        <property name="title" value="Fortress Java Sentry ${version}"/>
        <property name="vendor" value="Joshua Tree Software"/>
        <property name="package" value="us.jts.sentry.*"/>
        <property name="ivy.install.version" value="2.2.0"/>

        <!-- Env vars -->
        <property name="src.dir" value="${basedir}/src"/>
        <property name="lib.dir" value="${basedir}/lib"/>
        <property name="config.dir" value="${basedir}/conf"/>
        <property name="src.java.dir" value="${src.dir}/main/java"/>
        <property name="src.java.proxy.dir" value="${src.java.dir}/proxy"/>
        <property name="src.java.impl.dir" value="${src.java.dir}/impl"/>
        <property name="build.dir" value="${basedir}/build"/>
        <property name="build.classes.dir" value="${build.dir}/classes"/>
        <property name="build.classes.proxy.dir" value="${build.classes.dir}/proxy"/>
        <property name="build.classes.impl.dir" value="${build.classes.dir}/impl"/>
        <property name="dist.dir" value="${basedir}/dist"/>
        <property name="work.base.dir" value="${build.dir}/work"/>
        <property name="work.dir" value="${work.base.dir}/dflt"/>
        <property name="work.jboss.dir" value="${work.base.dir}/jb"/>
        <property name="src.dist.zip" value="${dist.dir}/${name}Src-${version}.zip"/>
        <property name="dst.remote.conf" value="${config.dir}/fortress.properties"/>
        <property name="src.remote.conf" value="${config.dir}/fortress.properties.src"/>
        <!-- config.suffix has a '\' which is required for commons configuration utility -->
        <property name="config.suffix" value="dc=${suffix.name}\,dc=com"/>

        <!-- Build artifacts -->
        <property name="fortressTomcatSentry.jar" value="${dist.dir}/fortressProxyTomcat-${version}.jar"/>
        <property name="fortressTomcat7Sentry.jar" value="${dist.dir}/fortressProxyTomcat7-${version}.jar"/>
        <property name="fortressSentry.jar" value="${dist.dir}/fortressSentry-${version}.jar"/>
        <property name="fortressSentry.zip" value="${dist.dir}/fortressSentryDist-${version}.zip"/>
        <property name="fortressSentryDistro.jar" value="${dist.dir}/fortressSentry-${version}.jar"/>
        <property name="fortressJbossSentryDistro.jar" value="${dist.dir}/fortressSentryJBoss-${version}.jar"/>
        <property name="fortressSentryImpl.jar" value="${dist.dir}/fortressSentryImpl-${version}.jar"/>
        <property name="javadoc.dist.zip" value="${dist.dir}/fortressSentryDoc-${version}.zip"/>
        <property name="fortressSentryBuilder.zip" value="${dist.dir}/fortressSentryBuilder-${version}.zip"/>
        <property name="config.dir" value="${basedir}/conf"/>

        <!-- Dependent LIBs in maven -->
        <property name="fortress.jar" value="${lib.dir}/fortress-${version}.jar"/>
        <property name="catalina7.jar" value="${lib.dir}/tomcat-catalina-7.0.22.jar"/>
        <property name="catalina.jar" value="${lib.dir}/catalina-6.0.33.jar"/>
        <property name="commons-config.jar" value="${lib.dir}/commons-configuration-1.6.jar"/>
        <property name="commons-lang.jar" value="${lib.dir}/commons-lang-2.4.jar"/>
        <property name="commons-collections.jar" value="${lib.dir}/commons-collections-3.2.1.jar"/>
        <property name="commons-pool.jar" value="${lib.dir}/commons-pool-1.5.2.jar"/>
        <property name="commons-logging.jar" value="${lib.dir}/commons-logging-1.1.1.jar"/>
        <property name="unboundsdk.jar" value="${lib.dir}/unboundid-ldapsdk-2.1.0.jar"/>
        <property name="jgraph.jar" value="${lib.dir}/jgrapht-jdk1.5-0.7.3.jar"/>
        <property name="log4j.jar" value="${lib.dir}/log4j-1.2.17.jar"/>
        <property name="jasypt.jar" value="${lib.dir}/jasypt-1.8.jar"/>
        <property name="ehcache-core.jar" value="${lib.dir}/ehcache-core-2.6.5.jar"/>
        <property name="slf4j-api.jar" value="${lib.dir}/slf4j-api-1.7.5.jar"/>
        <property name="slf4j-jcl.jar" value="${lib.dir}/slf4j-jcl-1.7.5.jar"/>
        <property name="apacheds-all.jar" value="${lib.dir}/apacheds-all-2.0.0-M15.jar"/>


        <!-- ########### Define classpaths ########################### -->
        <path id="build.proxy.class.path">
            <!-- J2EE JARs -->
            <pathelement location="${catalina.jar}"/>
        </path>

        <path id="build.proxy.tc7.class.path">
            <!-- J2EE JARs -->
            <pathelement location="${catalina7.jar}"/>
        </path>

        <path id="build.impl.class.path">
            <!-- J2EE JARs -->
            <pathelement location="${catalina.jar}"/>
            <!-- Fortress JARs -->
            <pathelement location="${build.classes.proxy.dir}"/>
            <pathelement location="${fortress.jar}"/>
            <pathelement location="${log4j.jar}"/>
        </path>

        <!-- JARS required for distribution -->
        <patternset id="dist.libs">
            <include name="${fortress.jar}"/>
            <include name="${log4j.jar}"/>
            <include name="${commons-collections.jar}"/>
            <include name="${commons-config.jar}"/>
            <include name="${commons-lang.jar}"/>
            <include name="${commons-logging.jar}"/>
            <include name="${commons-pool.jar}"/>
            <include name="${jgraph.jar}"/>
            <include name="${jasypt.jar}"/>
            <include name="${ehcache-core.jar}"/>
            <include name="${slf4j-api.jar}"/>
            <include name="${slf4j-jcl.jar}"/>
            <include name="${apacheds-all.jar}"/>
        </patternset>

        <!-- Javadoc vars -->
        <property name="javadoc.dir" value="${dist.dir}/docs/api"/>
        <property name="javadoc.images.dir" value="${javadoc.dir}/images"/>
        <property name="javadoc.bottom"
                  value="&lt;small&gt;Copyright &amp;copy; 2009-2013, JoshuaTree. All Rights Reserved."/>
        <property name="javadoc.overview" value="${src.java.dir}/overview.html"/>
        <property name="javadoc.stylesheet" value="${src.java.dir}/fortress-javadoc.css"/>

        <path id="javadoc.source.path">
            <pathelement location="${src.java.proxy.dir}"/>
            <pathelement location="${src.java.impl.dir}"/>
        </path>

        <property name="javac.optimize" value="false"/>
        <property name="javac.debug" value="true"/>
        <property name="javac.deprecation" value="true"/>

        <!-- Presetdef to create jar with common manifest -->
        <presetdef name="fortressSentry.jar">
            <jar compress="true">
                <manifest>
                    <attribute name="Created-By" value="${vendor} - ${project.name} dev team"/>
                    <attribute name="Implementation-Vendor" value="${vendor}"/>
                    <attribute name="Implementation-Version" value="${version}"/>
                    <attribute name="Specification-Title" value="${title}"/>
                    <attribute name="Package" value="${package}"/>
                    <attribute name="Extension-Name" value="${name}"/>
                    <attribute name="Built-By" value="${user.name}"/>
                    <attribute name="Compile-JDK" value="${java.runtime.version}"/>
                    <attribute name="Test-VM" value="${java.vm.version}"/>
                </manifest>
            </jar>
        </presetdef>

        <!-- define Maven coordinates (publishing only) -->
        <property name="groupId" value="us.jts"/>
        <property name="artifactId" value="sentry"/>

        <!-- defined maven snapshots and staging repository id and url (publishing only) -->
        <property name="maven-snapshots-repository-id" value="sonatype-nexus-snapshots"/>
        <property name="maven-snapshots-repository-url"
                  value="https://oss.sonatype.org/content/repositories/snapshots"/>
        <property name="maven-staging-repository-id" value="sonatype-nexus-staging"/>
        <property name="maven-staging-repository-url"
                  value="https://oss.sonatype.org/service/local/staging/deploy/maven2"/>

        <!-- define artifacts' name, which follows the convention of Maven (publishing only) -->
        <property name="maven-jar" value="${fortressSentryBuilder.zip}"/>
        <property name="maven-javadoc-jar" value="${javadoc.dist.zip}"/>
        <property name="maven-sources-jar" value="${src.dist.zip}"/>

    </target>

    <!-- =================================
          target: download-ivy - pulls down ivy.jar from maven 2 website
         ================================= -->
    <target name="download-ivy" depends="init" unless="local.mode">
        <!-- download from web site so that it can be used even without any special installation -->
        <echo message="downloading ivy to Ant home: ${ant.home}"/>
        <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
             dest="${ant.home}/lib" usetimestamp="true"/>
    </target>

    <!-- =================================
          target: resolve
         ================================= -->
    <target name="resolve" depends="init,download-ivy" description="--> retreive dependencies with ivy">
        <ivy:retrieve pattern="${lib.dir}/[artifact]-[revision].[ext]"/>
    </target>

    <!-- =================================
          target: clean-cache
         ================================= -->
    <target name="clean-cache" description="--> clean the ivy cache">
        <ivy:cleancache/>
    </target>

    <!-- ######################################################### -->
    <target name="clean" depends="init" description="removes generated files">
        <delete dir="${build.dir}"/>
        <delete dir="${dist.dir}"/>
    </target>

    <!-- ###############  create javadoc ############################### -->
    <target name="javadoc" depends="init" description="generates javadocs">
        <mkdir dir="${javadoc.dir}"/>
        <javadoc packagenames="${package}"
                 sourcepathref="javadoc.source.path"
                 destdir="${javadoc.dir}"
                 windowtitle="${title}"
                 doctitle="${title} "
                 bottom="${javadoc.bottom}"
                 overview="${javadoc.overview}"
                 public="true"
                 version="true"
                 author="true"
                 splitindex="false"
                 nodeprecated="true"
                 nodeprecatedlist="true"
                 notree="true"
                 noindex="false"
                 nohelp="true"
                 nonavbar="false"
                 classpathref="build.impl.class.path"
                 serialwarn="false">
        </javadoc>

    </target>

    <!-- ###############  compile packages ############################### -->
    <target name="compile-proxy" depends="init,resolve" description="compiles proxy source files">
        <mkdir dir="${build.classes.proxy.dir}"/>
        <javac srcdir="${src.java.proxy.dir}"
               debug="${javac.debug}"
               deprecation="${javac.deprecation}"
               destdir="${build.classes.proxy.dir}">
            <exclude name="us/jts/sentry/tomcat/Tc7AccessMgrProxy.java"/>
            <exclude name="us/jts/sentry/websphere/**"/>
            <classpath refid="build.proxy.class.path"/>
        </javac>
    </target>

    <target name="compile-proxy-tc7" depends="compile-proxy" description="compiles tomcat 7 proxy source files">
        <javac srcdir="${src.java.proxy.dir}"
               debug="${javac.debug}"
               deprecation="${javac.deprecation}"
               destdir="${build.classes.proxy.dir}">
            <exclude name="us/jts/sentry/tomcat/TcAccessMgrProxy.java"/>
            <exclude name="us/jts/sentry/websphere/**"/>
            <classpath refid="build.proxy.tc7.class.path"/>
        </javac>
    </target>

    <target name="compile-impl" depends="init,resolve" description="compiles impl source files">
        <mkdir dir="${build.classes.impl.dir}"/>
        <javac srcdir="${src.java.impl.dir}"
               debug="${javac.debug}"
               deprecation="${javac.deprecation}"
               destdir="${build.classes.impl.dir}">
            <exclude name="us/jts/sentry/websphere/**"/>
            <classpath refid="build.impl.class.path"/>
        </javac>
    </target>

    <target name="build-jar-tcproxy" depends="compile-proxy,compile-proxy-tc7,compile-impl">
        <mkdir dir="${dist.dir}"/>
        <fortressSentry.jar destfile="${fortressTomcatSentry.jar}">
            <fileset dir="${build.classes.proxy.dir}">
                <include name="us/jts/sentry/tomcat/**"/>
                <include name="us/jts/sentry/util/**"/>
                <exclude name="us/jts/sentry/tomcat/Tc7AccessMgrProxy.class"/>
            </fileset>
            <fileset dir="${build.classes.impl.dir}">
                <include name="us/jts/sentry/tomcat/TcPrincipal.class"/>
            </fileset>
            <metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
        </fortressSentry.jar>
    </target>

    <target name="build-jar-tc7proxy" depends="compile-proxy,compile-impl">
        <mkdir dir="${dist.dir}"/>
        <fortressSentry.jar destfile="${fortressTomcat7Sentry.jar}">
            <fileset dir="${build.classes.proxy.dir}">
                <include name="us/jts/sentry/tomcat/**"/>
                <include name="us/jts/sentry/util/**"/>
                <exclude name="us/jts/sentry/tomcat/TcAccessMgrProxy.class"/>
            </fileset>
            <fileset dir="${build.classes.impl.dir}">
                <include name="us/jts/sentry/tomcat/TcPrincipal.class"/>
            </fileset>
            <metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
        </fortressSentry.jar>
    </target>

    <target name="build-jar-impl" depends="compile-impl">
        <mkdir dir="${dist.dir}"/>
        <fortressSentry.jar basedir="${build.classes.impl.dir}" destfile="${fortressSentryImpl.jar}"/>
    </target>

    <target name="build-jar-distro" depends="init,build-jar-impl">
        <unjar dest="${work.dir}" src="${fortressSentryImpl.jar}"/>
        <unjar dest="${work.dir}" src="${fortress.jar}"/>
        <unjar dest="${work.dir}" src="${log4j.jar}"/>
        <unjar dest="${work.dir}" src="${commons-collections.jar}"/>
        <unjar dest="${work.dir}" src="${commons-config.jar}"/>
        <unjar dest="${work.dir}" src="${commons-lang.jar}"/>
        <unjar dest="${work.dir}" src="${commons-pool.jar}"/>
        <unjar dest="${work.dir}" src="${commons-logging.jar}"/>
        <unjar dest="${work.dir}" src="${unboundsdk.jar}"/>
        <unjar dest="${work.dir}" src="${jgraph.jar}"/>
        <unjar dest="${work.dir}" src="${jasypt.jar}"/>
        <unjar dest="${work.dir}" src="${ehcache-core.jar}"/>
        <unjar dest="${work.dir}" src="${slf4j-api.jar}"/>
        <unjar dest="${work.dir}" src="${slf4j-jcl.jar}"/>
        <fortressSentry.jar basedir="${work.dir}" compress="true" jarfile="${fortressSentryDistro.jar}"/>
    </target>

    <target name="build-jar-distro-jboss" depends="init,build-jar-impl">
        <unjar dest="${work.jboss.dir}" src="${fortressSentryImpl.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${fortress.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${log4j.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${commons-collections.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${commons-config.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${commons-lang.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${commons-pool.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${commons-logging.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${unboundsdk.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${jgraph.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${jasypt.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${ehcache-core.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${slf4j-api.jar}"/>
        <unjar dest="${work.jboss.dir}" src="${slf4j-jcl.jar}"/>
        <fileset dir="${config.dir}">
            <include name="*.xml"/>
            <include name="*.properties"/>
        </fileset>
        <fortressSentry.jar basedir="${work.jboss.dir}" jarfile="${fortressJbossSentryDistro.jar}"/>
    </target>

    <target name="build"
            depends="clean,build-jar-tcproxy,build-jar-tc7proxy,build-jar-impl, build-jar-distro,build-jar-distro-jboss,javadoc">
        <copy todir="${dist.dir}" file="${basedir}/LICENSE.txt"/>
        <copy todir="${dist.dir}" file="${basedir}/NOTICE.txt"/>
        <copy todir="${dist.dir}" file="${basedir}/TOMCAT-SETUP-NOTES.txt"/>
    </target>

    <!-- ###############  create distribution packages ############################ -->
    <target name="dist" depends="build" description="Create source and binary distribution">

        <zip destfile='${src.dist.zip}'>
            <zipfileset dir='${src.java.dir}'/>

            <zipfileset dir='${dist.dir}' prefix='META-INF'>
                <include name="*.txt"/>
            </zipfileset>
        </zip>

        <zip destfile="${javadoc.dist.zip}" basedir="${javadoc.dir}">
            <zipfileset dir='${dist.dir}' prefix='META-INF'>
                <include name="LICENSE.txt"/>
                <include name="NOTICE.txt"/>
            </zipfileset>
        </zip>

        <echo message="###############  Modify fortress configuration per user settings  ###############"/>
        <delete file="${dst.remote.conf}"/>
        <copyfile src="${src.remote.conf}" dest="${dst.remote.conf}"/>
        <replace file="${dst.remote.conf}" token="@SUFFIX@" value="${suffix}"/>
        <replace file="${dst.remote.conf}" token="@LDAP_HOST@" value="${ldap.host}"/>
        <replace file="${dst.remote.conf}" token="@LDAP_PORT@" value="${ldap.port}"/>
        <replace file="${dst.remote.conf}" token="@ROOT_DN@" value="${root.dn}"/>
        <replace file="${dst.remote.conf}" token="@CFG_ROOT_PW@" value="${cfg.root.pw}"/>
        <replace file="${dst.remote.conf}" token="@ADM_MIN_CONN@" value="${admin.min.conn}"/>
        <replace file="${dst.remote.conf}" token="@ADM_MAX_CONN@" value="${admin.max.conn}"/>
        <replace file="${dst.remote.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/>


        <!-- Break up the install binary packages by platform:  -->
        <zip destfile="${fortressSentry.zip}">
            <zipfileset dir="${dist.dir}" prefix="doc">
                <include name="fortressSentryDoc*.zip"/>
            </zipfileset>
            <zipfileset dir="${dist.dir}" prefix="src">
                <include name="fortressSentrySrc*.zip"/>
            </zipfileset>
            <zipfileset dir="${dist.dir}" prefix="proxy">
                <include name="fortressTomcatSentry*.jar"/>
                <include name="fortressTomcat7Sentry*.jar"/>
            </zipfileset>
            <zipfileset dir="${lib.dir}" prefix="lib" excludes="ws_runtime*,*catalina*,websphere*">
                <include name="*.jar"/>
            </zipfileset>
            <zipfileset dir="${dist.dir}" prefix="lib">
                <include name="fortress*.jar"/>
                <exclude name="fortressTomcatSentry*.jar"/>
                <exclude name="fortressTomcat7Sentry*.jar"/>
            </zipfileset>
            <zipfileset dir="${config.dir}" prefix="conf">
                <include name="*.xml"/>
                <include name="*.properties"/>
            </zipfileset>
            <zipfileset dir='${basedir}'>
                <include name="*.txt"/>
                <exclude name="WEBSPHERE*"/>
            </zipfileset>
        </zip>

        <antcall target="builder"></antcall>
    </target>

    <!-- =================================
          create Fortress Sentry Builder distribution package
         ================================= -->
    <target name="builder" depends="init" description="--> create the Sentry Builder distribution package">
        <echo message="###############  Create Sentry package named: ${fortressSentryBuilder.zip} ###############"/>
        <zip destfile="${fortressSentryBuilder.zip}"
             update="true">

            <zipfileset dir="${src.dir}" prefix="sentry-${version}/src">
                <include name="*/**"/>
                <exclude name="*.iml"/>
            </zipfileset>

            <zipfileset dir="${basedir}" prefix="sentry-${version}">
                <include name="*.xml"/>
                <include name="*.txt"/>
                <include name="*.properties"/>
                <include name="*.sh"/>
                <include name="*.bat"/>
                <include name="*.html"/>
                <exclude name="*.log"/>
                <exclude name="build.sh"/>
                <exclude name="READ-ME.txt"/>
            </zipfileset>

            <zipfileset dir="${config.dir}" prefix="sentry-${version}/conf">
                <include name="*/**"/>
            </zipfileset>
        </zip>

    </target>

    <!-- =================================
          Deploy Sentry to Tomcat server
         ================================= -->
    <target name="deploy-tomcat" depends="build" description="Deploy the security realm to Tomcat">
        <antcall target="deploy-tomcat-nix"></antcall>
        <antcall target="deploy-tomcat-win"></antcall>
    </target>

    <!-- =================================
          Deploy Sentry to Tomcat server to Unix
         ================================= -->
    <target name="deploy-tomcat-nix" depends="build" description="Deploy the security realm to Tomcat on Unix"
            unless="windows">
        <property name="src.catalina.sh" value="${tomcat.dir}/bin/catalina.sh.src"/>
        <property name="dst.catalina.sh" value="${tomcat.dir}/bin/catalina.sh"/>
        <property name="src.server.xml" value="${tomcat.dir}/conf/server.xml.src"/>
        <property name="dst.server.xml" value="${tomcat.dir}/conf/server.xml"/>
        <echo message="###############  Deploy the Tomcat Security Realm to Unix ###############"/>
        <delete file="${dst.catalina.sh}"/>
        <copyfile src="${src.catalina.sh}" dest="${dst.catalina.sh}"/>
        <replace file="${dst.catalina.sh}" token="@JAVA_HOME@" value="${java.home}"/>
        <delete file="${dst.server.xml}"/>
        <copyfile src="${src.server.xml}" dest="${dst.server.xml}"/>
        <replace file="${dst.server.xml}" token="@FORTRESS-SENTRY-REALM@" value="${tomcat-realm.conf}"/>
        <copyfile src="${fortressTomcat7Sentry.jar}" dest="${dst.server.xml}"/>
        <copy todir="${tomcat.dir}/lib" file="${fortressTomcat7Sentry.jar}"/>
    </target>

    <!-- =================================
          Deploy Sentry to Tomcat server to Windows
         ================================= -->
    <target name="deploy-tomcat-win" depends="build" description="Deploy the security realm to Tomcat on Windows"
            if="windows">
        <property name="src.catalina.bat" value="${tomcat.dir}\bin\catalina.bat.src"/>
        <property name="dst.catalina.bat" value="${tomcat.dir}\bin\catalina.bat"/>
        <property name="src.server.xml" value="${tomcat.dir}\conf\server.xml.src"/>
        <property name="dst.server.xml" value="${tomcat.dir}\conf\server.xml"/>
        <echo message="###############  Deploy the Tomcat Security Realm to Windows  ###############"/>
        <delete file="${dst.catalina.bat}"/>
        <copyfile src="${src.catalina.bat}" dest="${dst.catalina.bat}"/>
        <replace file="${dst.catalina.bat}" token="@JAVA_HOME@" value="${java.home}"/>
        <delete file="${dst.server.xml}"/>
        <copyfile src="${src.server.xml}" dest="${dst.server.xml}"/>
        <replace file="${dst.server.xml}" token="@FORTRESS-SENTRY-REALM@" value="${tomcat-realm.conf}"/>
        <copyfile src="${fortressTomcat7Sentry.jar}" dest="${dst.server.xml}"/>
        <copy todir="${tomcat.dir}/lib" file="${fortressTomcat7Sentry.jar}"/>
    </target>

    <!-- =================================
          call the target to start the Tomcat server
         ================================= -->
    <target name="start-tomcat" depends="init" description="--> start the Tomcat server">
        <antcall target="start-tomcat-nix"></antcall>
        <antcall target="start-tomcat-win"></antcall>
    </target>

    <!-- =================================
          Call the Unix Tomcat script to startup
         ================================= -->
    <target name="start-tomcat-nix" depends="init" unless="windows">
        <echo message="###############  Start the tomcat process on Unix ###############"/>
        <property name="startup.sh" value="${tomcat.dir}/bin/startup.sh"/>
        <chmod dir="${tomcat.dir}" perm="a+x" includes="**/*.sh"/>
        <exec dir="." executable="/bin/sh">
            <arg line="${startup.sh}"/>
        </exec>
    </target>

    <!-- =================================
          Call the Win Tomcat script to startup
         ================================= -->
    <target name="start-tomcat-win" depends="init" if="windows">
        <echo message="###############  Start the tomcat process on win ###############"/>
        <property name="dst.start.tomcat-script-win" value="${user.dir}/${tomcat.dir}/bin/startup.bat"/>
        <exec command="cmd.exe" spawn="false" osfamily="windows" dir="${user.dir}/${tomcat.dir}/bin">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${dst.start.tomcat-script-win}"/>
        </exec>
    </target>

    <!-- =================================
          call the target to stop the Tomcat server
         ================================= -->
    <target name="stop-tomcat" depends="init" description="--> stop the Tomcat server">
        <antcall target="stop-tomcat-win"></antcall>
        <antcall target="stop-tomcat-nix"></antcall>
    </target>

    <!-- =================================
          Call the unix Tomcat script to shutdown
         ================================= -->
    <target name="stop-tomcat-nix" depends="init" unless="windows">
        <echo message="###############  Stop the tomcat process on nix  ###############"/>
        <property name="shutdown.sh" value="${tomcat.dir}/bin/shutdown.sh"/>
        <exec dir="." executable="/bin/sh">
            <arg line="${shutdown.sh}"/>
        </exec>
    </target>

    <!-- =================================
          Call the Win Tomcat script to shutdown
         ================================= -->
    <target name="stop-tomcat-win" depends="init" if="windows">
        <echo message="###############  Stop the tomcat process on win ###############"/>
        <property name="shutdown.bat" value="${user.dir}/${tomcat.dir}/bin/shutdown.bat"/>
        <exec command="cmd.exe" spawn="false" osfamily="windows" dir="${user.dir}/${tomcat.dir}/bin">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${shutdown.bat}"/>
        </exec>
    </target>

    <!-- =================================
          Deploy snapshot to remote Maven repository
         ================================= -->
    <target name="deploy" depends="dist" description="deploy snapshot version to Maven snapshot repository">
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file"/>
            <arg value="-Durl=${maven-snapshots-repository-url}"/>
            <arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
            <arg value="-DpomFile=pom.xml"/>
            <arg value="-Dfile=${maven-jar}"/>
        </artifact:mvn>
    </target>

    <!-- =================================
          Update project version (both build.xml and pom.xml) from SNAPSHOT to RELEASE
         ================================= -->
    <target name="stage" depends="dist" description="deploy release version to Maven staging repository">
        <!-- sign and deploy the main artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
            <arg value="-Durl=${maven-staging-repository-url}"/>
            <arg value="-DrepositoryId=${maven-staging-repository-id}"/>
            <arg value="-DpomFile=pom.xml"/>
            <arg value="-Dfile=${maven-jar}"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>

        <!-- sign and deploy the sources artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
            <arg value="-Durl=${maven-staging-repository-url}"/>
            <arg value="-DrepositoryId=${maven-staging-repository-id}"/>
            <arg value="-DpomFile=pom.xml"/>
            <arg value="-Dfile=${maven-sources-jar}"/>
            <arg value="-Dclassifier=sources"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>

        <!-- sign and deploy the javadoc artifact -->
        <artifact:mvn>
            <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
            <arg value="-Durl=${maven-staging-repository-url}"/>
            <arg value="-DrepositoryId=${maven-staging-repository-id}"/>
            <arg value="-DpomFile=pom.xml"/>
            <arg value="-Dfile=${maven-javadoc-jar}"/>
            <arg value="-Dclassifier=javadoc"/>
            <arg value="-Pgpg"/>
        </artifact:mvn>
    </target>

</project>
