<!--
   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 name="fortress-core" default="build" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:artifact="antlib:org.apache.maven.artifact.ant">-->
<project name="fortress-core" default="init-fortress-config" basedir="." >
    <!-- =================================
          initialize all Fortress Core package properties
         ================================= -->
   <target name="init">
      <tstamp/>
       <!-- read properties from the ${user.home}/propfile, if any, which will take precedence over slapd.properties and build.properties -->
       <property name="user-propfile" value="${user.home}/build.properties"/>
       <property file="${user-propfile}"/>

       <!-- read properties from the slapd.properties, if any, which will have precedence over build.properties -->
       <property name="slapd-propfile" value="${basedir}/slapd.properties"/>
       <property file="${slapd-propfile}"/>

       <!-- read user defined properties from the build.properties -->
       <property name="component-propfile" value="${basedir}/build.properties"/>
       <property file="${component-propfile}"/>

       <!-- ########### Project specific properties ########################### -->
       <property name="project.name" value="Fortress Identity Access Management SDK"/>
       <property name="name" value="fortress"/>
       <property name="title" value="Fortress Access Management SDK for Java ${version}"/>
       <property name="title.samples" value="Fortress Identity and Access Management Samples for Java ${version}"/>
       <property name="vendor" value="Joshua Tree Software"/>
       <property name="package" value="org.apache.directory.fortress.*"/>
       <property name="package.samples" value="org.apache.directory.fortress.core.samples"/>
       <property name="images.dir" value="${basedir}/images"/>

       <!-- ########### Env specific properties ########################### -->
       <property name="src.dir" value="${basedir}/src"/>
       <property name="lib.dir" value="${basedir}/lib"/>
       <property name="src.java.dir" value="${src.dir}/main/java"/>
       <property name="src.test.dir" value="${src.dir}/test/java"/>
       <property name="src.test.resources.dir" value="${src.dir}/test/resources"/>

       <!-- ########### Build properties & artifacts ########################### -->
       <property name="build.dir" value="${basedir}/build"/>
       <property name="build.classes.dir" value="${build.dir}/classes"/>
       <property name="build.test-classes.dir" value="${build.dir}/test-classes"/>
       <property name="dist.dir" value="${basedir}/dist"/>
       <property name="dist.jar" value="${dist.dir}/${name}-${version}.jar"/>
       <property name="dist.test.jar" value="${dist.dir}/${name}-${version}-test.jar"/>
       <property name="src.dist.zip" value="${dist.dir}/${name}-${version}-sources.jar"/>
       <property name="src.test.dist.zip" value="${dist.dir}/${name}-${version}-sourcestest.jar"/>
       <property name="src.samples.dist.zip" value="${dist.dir}/${name}SamplesSrc-${version}.zip"/>
       <property name="samples.dist.zip" value="${dist.dir}/${name}Samples-${version}.zip"/>
       <property name="fortressBuilder.zip" value="${dist.dir}/fortressBuilder-${platform}-${version}.zip"/>

       <!-- ########### LDAP properties ########################### -->
       <property name="ldap.dir" value="${basedir}/ldap"/>
       <property name="ldap.setup.dir" value="${ldap.dir}/setup"/>
       <property name="ldap.schema.dir" value="${ldap.dir}/schema"/>
       <property name="slapd.schema.dir" value="${slapd.dir}/schema"/>
       <property name="src.slapd.ssl.keys.dir" value="${src.test.resources.dir}/certs"/>
       <property name="dst.slapd.ssl.keys.dir" value="${openldap.root}/ssl"/>

       <!-- ########### Configuration, Load and builder properties ########################### -->
       <property name="src.load.bootstrap.script" value="${ldap.setup.dir}/refreshLDAPData-src.xml"/>
       <property name="dst.load.bootstrap.script" value="${ldap.setup.dir}/refreshLDAPData.xml"/>
       <property name="load.delegatedadmin.script" value="${ldap.setup.dir}/DelegatedAdminManagerLoad.xml"/>
       <property name="load.demo.script" value="${ldap.setup.dir}/FortressDemoUsers.xml"/>
       <property name="build.win.properties" value="${basedir}/build.win.properties"/>
       <property name="build.nix.properties" value="${basedir}/build.nix.properties"/>
       <property name="build.properties" value="${basedir}/build.properties"/>
       <property name="config.dir" value="${basedir}/config"/>
       <property name="config.bootstrap.dir" value="${config.dir}/bootstrap"/>
       <property name="src.remote.conf" value="${config.dir}/fortress.properties.src"/>
       <property name="dst.remote.conf" value="${config.dir}/fortress.properties"/>
       <property name="src.bootstrap.conf" value="${config.bootstrap.dir}/fortress.properties.src"/>
       <property name="dst.bootstrap.conf" value="${config.bootstrap.dir}/fortress.properties"/>
       <property name="builder.bootstrap.conf" value="${builder.home}/config/bootstrap/fortress.properties"/>
       <property name="builder.remote.conf" value="${builder.home}/config/fortress.properties"/>
       <property name="builder.load.bootstrap.script" value="${builder.home}/ldap/refreshLDAPData-src.xml"/>
       <property name="ehcache.conf" value="${config.dir}/ehcache.xml"/>
       <property name="bootstrap.ehcache.conf" value="${config.bootstrap.dir}/ehcache.xml"/>
       <property name="apacheds-resource.dir" value="${basedir}/src/test/resources"/>

       <!-- ########### Slapd manage & config properties ########################### -->
       <property name="stop.slapd.script-win" value="${ldap.setup.dir}/stopSlapd.cmd"/>
       <property name="src.start.slapd.script-win" value="${ldap.setup.dir}/startSlapd.cmd.src"/>
       <property name="dst.start.slapd.script-win" value="${ldap.setup.dir}/startSlapd.cmd"/>
       <property name="stop.slapd.script" value="${ldap.setup.dir}/stopSlapd.sh"/>
       <property name="start.slapd.script" value="${ldap.setup.dir}/startSlapd.sh"/>
       <property name="mkdir.slapd-win" value="${ldap.setup.dir}/mkDir.cmd"/>
       <property name="uninstall.slapd.script" value="${ldap.setup.dir}/uninstall.sh"/>
       <property name="install.slapd.script" value="${ldap.setup.dir}/install.sh"/>
       <property name="source.symas.conf" value="${ldap.dir}/symas-openldap.conf.src"/>
       <property name="target.symas.conf" value="${ldap.dir}/symas-openldap.conf"/>
       <property name="dst.symas.conf" value="${slapd.dir}/symas-openldap.conf"/>
       <property name="source.slapd.conf" value="${ldap.dir}/slapd.conf.src"/>
       <property name="target.slapd.conf" value="${ldap.dir}/slapd.conf"/>
       <property name="dst.slapd.conf" value="${slapd.dir}/slapd.conf"/>
       <property name="source.fortress.schema" value="${ldap.schema.dir}/fortress.schema"/>
       <property name="target.fortress.schema" value="${slapd.schema.dir}/fortress.schema"/>
       <property name="source.rbac.schema" value="${ldap.schema.dir}/rbac.schema"/>
       <property name="target.rbac.schema" value="${slapd.schema.dir}/rbac.schema"/>
       <property name="db.cfg" value="${ldap.dir}/DB_CONFIG"/>

    </target>

    <tstamp>
        <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" />
    </tstamp>

    <!-- =================================
          target: init-openldap-config - modifies openldap artifacts for runtime use of fortress-core
         ================================= -->
     <target name="init-openldap-config" depends="init" description="--> map env params from build.properties to scripts and config files">
         <echo message="###############  Modify slapd configuration per user settings  ###############"/>
         <delete file="${target.slapd.conf}" failonerror="false"/>
       <copy file="${source.slapd.conf}" tofile="${target.slapd.conf}"/>
         <replace file="${target.slapd.conf}" token="@SCHEMA_PATH@" value="${slapd.schema.dir}"/>
         <replace file="${target.slapd.conf}" token="@SUFFIX@" value="${suffix}"/>
         <replace file="${target.slapd.conf}" token="@PID_PATH@" value="${pid.dir}"/>
         <replace file="${target.slapd.conf}" token="@HISTORY_DB_PATH@" value="${db.hist.dir}"/>
         <replace file="${target.slapd.conf}" token="@DEFAULT_DB_PATH@" value="${db.dir}"/>
         <replace file="${target.slapd.conf}" token="@SLAPD_MODULE_PATH@" value="${slapd.module.dir}"/>
         <replace file="${target.slapd.conf}" token="@LOGOPS@" value="${log.ops}"/>
         <replace file="${target.slapd.conf}" token="@ROOT_DN@" value="${root.dn}"/>
         <replace file="${target.slapd.conf}" token="@ROOT_PW@" value="${root.pw}"/>
         <replace file="${target.slapd.conf}" token="@LOG_ROOT_DN@" value="${log.admin.user}"/>
         <replace file="${target.slapd.conf}" token="@LOG_ROOT_PW@" value="${log.root.pw}"/>
         <replace file="${target.slapd.conf}" token="@LOG_SUFFIX@" value="${log.suffix}"/>
         <replace file="${target.slapd.conf}" token="@LOG_DBNOSYNCH@" value="${log.dbnosynch}"/>
         <replace file="${target.slapd.conf}" token="@LOG_CHECKPOINT@" value="${log.checkpoint}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_DBNOSYNCH@" value="${dflt.dbnosynch}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_CHECKPOINT@" value="${dflt.checkpoint}"/>
         <replace file="${target.slapd.conf}" token="@DB_MODULE_NM@" value="back_${db.type}.la"/>
         <replace file="${target.slapd.conf}" token="@DB_TYPE@" value="${db.type}"/>
         <replace file="${target.slapd.conf}" token="@LOG_RDRS@" value="${log.rdrs}"/>
         <replace file="${target.slapd.conf}" token="@LOG_SIZE@" value="${log.size}"/>
         <replace file="${target.slapd.conf}" token="@LOG_BDB_CACHE_SIZE@" value="${log.bdb.cache.size}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_RDRS@" value="${dflt.rdrs}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_SIZE@" value="${dflt.size}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_BDB_CACHE_SIZE@" value="${dflt.bdb.cache.size}"/>
         <replace file="${target.slapd.conf}" token="@DFLT_BDB_CACHE_IDLE_SIZE@" value="${dflt.bdb.cache.idle.size}"/>
         <replace file="${target.slapd.conf}" token="@POLICIES_DN@" value="${policies.dn}"/>

         <!-- setup the symas openldap slapd start/stop script -->
         <delete file="${target.symas.conf}" failonerror="false"/>
         <copy file="${source.symas.conf}" tofile="${target.symas.conf}"/>
         <replace file="${target.symas.conf}" token="@LDAP_URIS@" value="${ldap.uris}"/>

         <antcall target="init-rbac-accelerator"></antcall>
         <antcall target="init-slapd-ssl"></antcall>

         <echo message="Target init-all-config complete."/>
     </target>

    <!-- =================================
          RBAC Accelerator Overlay Config
         ================================= -->
    <target name="init-rbac-accelerator" depends="init">
        <antcall target="enable-rbac-accelerator"></antcall>
        <antcall target="disable-rbac-accelerator"></antcall>
    </target>

    <!-- =================================
          Enable the RBAC Accelerator Overlay
         ================================= -->
    <target name="enable-rbac-accelerator" depends="init" if="rbac.accelerator">
        <echo message="###############  Initialize the RBAC Accelerator Overlay"/>
        <replace file="${target.slapd.conf}" token="@RBAC_MODULE@" value="${rbac.module}"/>
        <replace file="${target.slapd.conf}" token="@DDS_MODULE@" value="${dds.module}"/>
        <replace file="${target.slapd.conf}" token="@MONITOR_MODULE@" value="${monitor.module}"/>
        <replace file="${target.slapd.conf}" token="@IS_RBAC_ACCELERATOR@" value=""/>
        <replace file="${target.slapd.conf}" token="@USERS_DN@" value="${users.dn}"/>
        <replace file="${target.slapd.conf}" token="@ROLES_DN@" value="${roles.dn}"/>
        <replace file="${target.slapd.conf}" token="@PERMS_DN@" value="${perms.dn}"/>
        <replace file="${target.slapd.conf}" token="@SUFFIX@" value="${suffix.dc}"/>
        <replace file="${target.slapd.conf}" token="@SUFFIX_NAME@" value="${suffix.name}"/>
        <replace file="${target.slapd.conf}" token="@RBACSESS_DB_PATH@" value="${db.sess.dir}"/>
        <replace file="${target.slapd.conf}" token="@AUDIT_DB_PATH@" value="${db.audit.dir}"/>
        <replace file="${target.slapd.conf}" token="@RBACOVERLAY_DB_PATH@" value="${db.rbac.dir}"/>
        <replace file="${target.slapd.conf}" token="@RBAC_DN@" value="${rbac.dn}"/>
        <replace file="${target.slapd.conf}" token="@SESSIONS_DN@" value="${sessions.dn}"/>
        <replace file="${target.slapd.conf}" token="@AUDITS_DN@" value="${audit.dn}"/>

        <echo message="###############  Backup old RBAC ACCEL OVERLAY LMDB audit folder  ###############"/>
        <move todir="${db.bak.audit.dir}/${TODAY}" failonerror="false">
            <fileset dir="${db.audit.dir}"/>
        </move>
        <echo message="###############  Backup old RBAC ACCEL OVERLAY LMDB session folder  ###############"/>
        <move todir="${db.bak.sess.dir}/${TODAY}" failonerror="false">
            <fileset dir="${db.sess.dir}"/>
        </move>

        <echo message="###############  Create RBAC ACCEL OVERLAY session folder  ###############"/>
        <mkdir dir="${db.sess.dir}"/>
        <echo message="###############  Create RBAC ACCEL OVERLAY audit folder  ###############"/>
        <mkdir dir="${db.audit.dir}"/>
        <echo message="###############  Create RBAC ACCEL OVERLAY rbac folder  ###############"/>
        <mkdir dir="${db.rbac.dir}"/>
        <antcall target="copy-rbac-libs"></antcall>
    </target>

    <!-- =================================
          Disable RBAC Accelerator Overlay
         ================================= -->
    <target name="disable-rbac-accelerator" depends="init" unless="rbac.accelerator">
        <echo message="###############  Disable the RBAC Accelerator Overlay"/>
        <replace file="${target.slapd.conf}" token="@RBAC_MODULE@" value=""/>
        <replace file="${target.slapd.conf}" token="@DDS_MODULE@" value=""/>
        <replace file="${target.slapd.conf}" token="@MONITOR_MODULE@" value=""/>
        <replace file="${target.slapd.conf}" token="@IS_RBAC_ACCELERATOR@" value="#"/>
    </target>

    <!-- =================================
          OpenLDAP SSL Config
         ================================= -->
    <target name="init-slapd-ssl" depends="init">
        <antcall target="enable-slapd-ssl"></antcall>
        <antcall target="disable-slapd-ssl"></antcall>
    </target>

    <!-- =================================
          Enable OpenLDAP SSL
         ================================= -->
    <target name="enable-slapd-ssl" depends="init" if="enable.ldap.ssl">
        <echo message="###############  Enable OpenLDAP SSL"/>
        <antcall target="copy-ssl-keys"></antcall>
        <replace file="${target.slapd.conf}" token="@IS_SSL@" value=""/>
        <replace file="${target.slapd.conf}" token="@CA_CERT_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.ca.cert.file}"/>
        <replace file="${target.slapd.conf}" token="@CERT_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.cert.file}"/>
        <replace file="${target.slapd.conf}" token="@CERT_KEY_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.key.file}"/>
    </target>

    <!-- =================================
          Disable OpenLDAP SSL
         ================================= -->
    <target name="disable-slapd-ssl" depends="init" unless="enable.ldap.ssl">
        <echo message="###############  Disable OpenLDAP SSL"/>
        <replace file="${target.slapd.conf}" token="@IS_SSL@" value="#"/>
    </target>

    <!-- =================================
          init slapd for windows
         ================================= -->
    <target name="init-slapd-win-script" depends="init" if="windows" description="--> creates a startup file for slapd on windows">
        <echo message="###############  Create slapd startup script for windows  ###############"/>
        <delete file="${dst.start.slapd.script-win}"/>
        <copy file="${src.start.slapd.script-win}" tofile="${dst.start.slapd.script-win}"/>
        <replace file="${dst.start.slapd.script-win}" token="@SLAPD_LOCATION@" value="${slapd.exe.location}"/>
        <echo message="init-slapd-win-script."/>
    </target>

    <!-- =================================
          initialize the config files
         ================================= -->
    <target name="init-fortress-config" depends="init">
       <echo message="Determine configuration requirements"/>
       <antcall target="init-fortress-config-local"></antcall>
       <antcall target="init-fortress-config-remote"></antcall>
    </target>

    <!-- =================================
          target: init-fortress-config - uses configuration artifacts created by Fortress Builder in target system environment.
         ================================= -->
     <target name="init-fortress-config-remote" depends="init" description="--> uses external build.properties to create local script and config files.."  if="builder.home">
         <echo message="###############  Import fortress configuration from Builder directory  ###############"/>
       <copy file="${builder.bootstrap.conf}" tofile="${dst.bootstrap.conf}"/>
       <copy file="${builder.remote.conf}" tofile="${dst.remote.conf}"/>
       <copy file="${builder.load.bootstrap.script}" tofile="${dst.load.bootstrap.script}"/>
         <echo message="###############  Copy ehcache config to bootstrap config folder  ###############"/>
         <delete file="${bootstrap.ehcache.conf}"/>
       <copy file="${ehcache.conf}" tofile="${bootstrap.ehcache.conf}"/>
         <echo message="Target init-fortress-config-remote complete."/>
     </target>

    <!-- =================================
          target: init-fortress-config - modifies fortress-core configuration artifacts for use of openldap in target system environment.
         ================================= -->
     <target name="init-fortress-config-local" depends="init" description="--> map env params from build.properties to scripts and config files.."  unless="builder.home">
         <echo message="###############  Modify fortress configuration per user settings  ###############"/>
         <delete file="${dst.bootstrap.conf}"/>
         <delete file="${dst.remote.conf}"/>

       <copy file="${src.bootstrap.conf}" tofile="${dst.bootstrap.conf}"/>
         <replace file="${dst.bootstrap.conf}" token="@SUFFIX@" value="${suffix}"/>
         <replace file="${dst.bootstrap.conf}" token="@LDAP_HOST@" value="${ldap.host}"/>
         <replace file="${dst.bootstrap.conf}" token="@LDAP_PORT@" value="${ldap.port}"/>
         <replace file="${dst.bootstrap.conf}" token="@ROOT_DN@" value="${root.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@CFG_ROOT_PW@" value="${cfg.root.pw}"/>
         <replace file="${dst.bootstrap.conf}" token="@ADM_MIN_CONN@" value="${admin.min.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@ADM_MAX_CONN@" value="${admin.max.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@LOG_ROOT_DN@" value="${log.admin.user}"/>
         <replace file="${dst.bootstrap.conf}" token="@CFG_LOG_ROOT_PW@" value="${log.admin.pw}"/>
         <replace file="${dst.bootstrap.conf}" token="@LOG_MIN_CONN@" value="${min.log.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@LOG_MAX_CONN@" value="${max.log.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@USR_MIN_CONN@" value="${user.min.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@USR_MAX_CONN@" value="${user.max.conn}"/>
         <replace file="${dst.bootstrap.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/>
         <replace file="${dst.bootstrap.conf}" token="@SERVER_TYPE@" value="${ldap.server.type}"/>
         <replace file="${dst.bootstrap.conf}" token="@LDAP_CLIENT_TYPE@" value="${ldap.client.type}"/>
         <replace file="${dst.bootstrap.conf}" token="@USERS_DN@" value="${users.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@ROLES_DN@" value="${roles.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@POLICIES_DN@" value="${policies.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@PERMS_DN@" value="${perms.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@CONSTRAINTS_DN@" value="${constraints.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@USEROUS_DN@" value="${userous.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@PERMOUS_DN@" value="${permous.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@ADMINROLES_DN@" value="${adminroles.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@ADMINPERMS_DN@" value="${adminperms.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@AUDITS_DN@" value="${audits.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@GROUPS_DN@" value="${groups.dn}"/>
         <replace file="${dst.bootstrap.conf}" token="@GROUP_OBJECT_CLASS@" value="${group.objectclass}"/>
         <replace file="${dst.bootstrap.conf}" token="@GROUP_PROTOCOL@" value="${group.protocol}"/>
         <replace file="${dst.bootstrap.conf}" token="@GROUP_PROPERTIES@" value="${group.properties}"/>
         <replace file="${dst.bootstrap.conf}" token="@ENABLE_LDAP_SSL@" value="${enable.ldap.ssl}"/>
         <replace file="${dst.bootstrap.conf}" token="@ENABLE_LDAP_SSL_DEBUG@" value="${enable.ldap.ssl.debug}"/>
         <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE@" value="${trust.store}"/>
         <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE_PW@" value="${trust.store.password}"/>
         <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE_SET_PROPW@" value="${trust.store.set.prop}"/>

       <copy file="${src.remote.conf}" tofile="${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="@LOG_ROOT_DN@" value="${log.admin.user}"/>
         <replace file="${dst.remote.conf}" token="@CFG_LOG_ROOT_PW@" value="${log.admin.pw}"/>

         <replace file="${dst.remote.conf}" token="@LOG_MIN_CONN@" value="${min.log.conn}"/>
         <replace file="${dst.remote.conf}" token="@LOG_MAX_CONN@" value="${max.log.conn}"/>
         <replace file="${dst.remote.conf}" token="@USR_MIN_CONN@" value="${user.min.conn}"/>
         <replace file="${dst.remote.conf}" token="@USR_MAX_CONN@" value="${user.max.conn}"/>
         <replace file="${dst.remote.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/>
         <replace file="${dst.remote.conf}" token="@ENABLE_REST@" value="${enable.mgr.impl.rest}"/>
         <replace file="${dst.remote.conf}" token="@REST_HTTP_USER@" value="${http.user}"/>
         <replace file="${dst.remote.conf}" token="@REST_HTTP_PW@" value="${http.pw}"/>
         <replace file="${dst.remote.conf}" token="@REST_HTTP_HOST@" value="${http.host}"/>
         <replace file="${dst.remote.conf}" token="@REST_HTTP_PORT@" value="${http.port}"/>
         <replace file="${dst.remote.conf}" token="@REST_HTTP_PROTOCOL@" value="${http.protocol}"/>
         <replace file="${dst.remote.conf}" token="@LDAP_CLIENT_TYPE@" value="${ldap.client.type}"/>
         <replace file="${dst.remote.conf}" token="@ENABLE_LDAP_SSL@" value="${enable.ldap.ssl}"/>
         <replace file="${dst.remote.conf}" token="@ENABLE_LDAP_SSL_DEBUG@" value="${enable.ldap.ssl.debug}"/>
         <replace file="${dst.remote.conf}" token="@TRUST_STORE@" value="${trust.store}"/>
         <replace file="${dst.remote.conf}" token="@TRUST_STORE_PW@" value="${trust.store.password}"/>
         <replace file="${dst.remote.conf}" token="@TRUST_STORE_SET_PROPW@" value="${trust.store.set.prop}"/>
         <replace file="${dst.remote.conf}" token="@KEY_STORE@" value="${key.store}"/>
         <replace file="${dst.remote.conf}" token="@KEY_STORE_PW@" value="${key.store.password}"/>
         <replace file="${dst.remote.conf}" token="@SERVER_TYPE@" value="${ldap.server.type}"/>
         <replace file="${dst.remote.conf}" token="@IS_AUDIT@" value="${disable.audit}"/>

         <echo message="###############  Modify fortress load scripts per user settings  ###############"/>
         <delete file="${dst.load.bootstrap.script}"/>
         <copy file="${src.load.bootstrap.script}" tofile="${dst.load.bootstrap.script}"/>
         <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_NAME@" value="${suffix.name}"/>
         <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_DC@" value="${suffix.dc}"/>
         <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_DC2@" value="${suffix.dc2}"/>
         <replace file="${dst.load.bootstrap.script}" token="@SUFFIX@" value="${suffix}"/>

         <replace file="${dst.load.bootstrap.script}" token="@USERS_DN@" value="${users.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@GROUPS_DN@" value="${groups.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@ROLES_DN@" value="${roles.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@POLICIES_DN@" value="${policies.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@PERMS_DN@" value="${perms.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@CONSTRAINTS_DN@" value="${constraints.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@USEROUS_DN@" value="${userous.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@PERMOUS_DN@" value="${permous.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@ADMINROLES_DN@" value="${adminroles.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@ADMINPERMS_DN@" value="${adminperms.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@AUDITS_DN@" value="${audits.dn}"/>
         <replace file="${dst.load.bootstrap.script}" token="@GROUP_OBJECT_CLASS@" value="${group.objectclass}"/>
         <replace file="${dst.load.bootstrap.script}" token="@GROUP_PROTOCOL@" value="${group.protocol}"/>
         <replace file="${dst.load.bootstrap.script}" token="@GROUP_PROPERTIES@" value="${group.properties}"/>
         <echo message="###############  Copy ehcache config to bootstrap config folder  ###############"/>
         <delete file="${bootstrap.ehcache.conf}"/>
       <copy file="${ehcache.conf}" tofile="${bootstrap.ehcache.conf}"/>

         <echo message="Target init-fortress-config-local complete."/>
     </target>

    <!-- =================================
          target: init-all-config - configures openldap, fortress and the the base load scripts for ldap Directory Information Tree (DIT)
         ================================= -->
     <target name="init-all-config" depends="init" description="--> map env params from build.properties to scripts and config files">
         <antcall target="init-openldap-config"></antcall>
         <antcall target="init-fortress-config"></antcall>
         <echo message="Target init-all-config complete."/>
     </target>

    <target name="foo" depends="init" description="--> does some foo">
        <echo message="############### Foo Fighters Rule!!!  ###############"/>
        <echo message="############### Foo Fighters Rule!!!  ###############"/>
        <echo message="############### Foo Fighters Rule!!!  ###############"/>
        <echo message="############### Foo Fighters Rule!!!  ###############"/>
        <echo message="############### Foo Fighters Rule!!!  ###############"/>
    </target>


    <!-- =================================
          target: init-slapd - Performs the following functions:

                1. Initializes the Fortress runtime config
                2. Installs OpenLDAP directory server to the local machine

          WARNING: Use caution running this target.

          It backs up the folder containing current LMDB database (pointed to by ${db.dir}) and creates a new/empty database folder.

          This operation can be manually reversed by moving the saved DB folder (pointed to by ${db.hist.dir}) back to original location (again ${db.dir}).

          This operation is for creating new or reinitializing existing OpenLdap instances back to origin and should NEVER be run against an LDAP server in prod env.

          Do NOT run this Ant target on a production LDAP instance !!
         ================================= -->
    <target name="init-slapd" depends="init" description="--> task recreates openldap system and must be run as elevated priv's to teardown/create slapd files and folders">
        <echo message="###############  Initialize OpenLDAP  ###############"/>

        <echo message="###############  Stop slapd process  ###############"/>
        <antcall target="stop-slapd"></antcall>
        <antcall target="uninstall-slapd"></antcall>

        <echo message="###############  Backup the slpad bdb folders  ###############"/>
        <!-- Backup the OpenLDAP access log db folder -->
        <move todir="${db.bak.hist.dir}/${TODAY}" failonerror="false">
           <fileset dir="${db.hist.dir}"/>
        </move>
        <!-- Backup the OpenLDAP db folder -->
        <move todir="${db.bak.dir}/${TODAY}" failonerror="false">
           <fileset dir="${db.dir}"/>
        </move>

        <antcall target="install-slapd"></antcall>

        <echo message="###############  Create new slapd bdb folders  ###############"/>
        <mkdir dir="${db.dir}"/>
        <mkdir dir="${db.hist.dir}"/>
        <copy todir="${db.dir}" file="${db.cfg}"/>
        <copy todir="${db.hist.dir}" file="${db.cfg}"/>

        <echo message="###############  Backup slapd configuration and Fortress LDAP schema  ###############"/>
        <move file="${dst.slapd.conf}" tofile="${dst.slapd.conf}.bak.${TODAY}" failonerror="false" />
        <move file="${dst.symas.conf}" tofile="${dst.symas.conf}.bak.${TODAY}" failonerror="false" />
        <move file="${target.fortress.schema}" tofile="${target.fortress.schema}.${TODAY}" failonerror="false" />
        <move file="${target.rbac.schema}" tofile="${target.rbac.schema}.${TODAY}" failonerror="false" />

        <echo message="###############  Setup meta config and base load scripts for openldap and fortress  ###############"/>
        <antcall target="init-all-config"></antcall>

        <echo message="###############  Copy slapd configuration and Fortress LDAP schema files from source  ###############"/>
        <copy todir="${slapd.schema.dir}" file="${source.fortress.schema}"/>
        <copy todir="${slapd.schema.dir}" file="${source.rbac.schema}"/>
        <copy todir="${slapd.dir}" file="${target.slapd.conf}"/>
        <copy todir="${slapd.dir}" file="${target.symas.conf}"/>

        <antcall target="copy-access-libs"></antcall>    
        <antcall target="init-slapd-win-script"></antcall>
        <antcall target="start-slapd"></antcall>
        <echo message="Target init-slapd complete."/>
    </target>

    <!-- =================================
          perform test configurations
         ================================= -->
    <target name="test-config" depends="init">
        <echo message="###############  Test Config Steps"/>
        <echo message="###############  Setup meta config and base load scripts for openldap and fortress  ###############"/>
        <antcall target="init-all-config"></antcall>

        <echo message="###############  Copy slapd configuration and Fortress LDAP schema files from source  ###############"/>
        <copy todir="${slapd.schema.dir}" file="${source.fortress.schema}"/>
        <copy todir="${slapd.dir}" file="${target.slapd.conf}"/>

        <antcall target="copy-access-libs"></antcall>
        <antcall target="init-slapd-win-script"></antcall>
    </target>

    <!-- =================================
          copy the slapd access log libs from install to bin folder
         ================================= -->
    <target name="copy-access-libs" depends="init" >
        <echo message="###############  Copy access log libs ${openldap.install.artifact.dir} to openldap lib folder ${slapd.module.dir}"/>
    <copy todir="${slapd.module.dir}" failonerror="false">
      <fileset dir="${openldap.install.artifact.dir}">
        <include name="**/accesslog*"/>
      </fileset>
    </copy>
    </target>

    <!-- =================================
          copy the slapd impl accelerator overlay libs from install to bin folder
         ================================= -->
    <target name="copy-rbac-libs" depends="init" >
        <echo message="###############  Copy rbac libs ${openldap.install.artifact.dir} to openldap lib folder ${slapd.module.dir}"/>
        <copy todir="${slapd.module.dir}" failonerror="false">
            <fileset dir="${openldap.install.artifact.dir}">
                <include name="**/rbac*"/>
            </fileset>
        </copy>
    </target>

    <!-- =================================
          copy the slapd impl accelerator overlay libs from install to bin folder
         ================================= -->
    <target name="copy-ssl-keys" depends="init" >
        <echo message="###############  Copy SSL keys from ${src.slapd.ssl.keys.dir} to ${dst.slapd.ssl.keys.dir}"/>
        <copy todir="${dst.slapd.ssl.keys.dir}" failonerror="false">
            <fileset dir="${src.slapd.ssl.keys.dir}">
                <include name="*.pem"/>
            </fileset>
        </copy>
    </target>

    <!-- =================================
          if windows system create slapd server folders
         ================================= -->
    <target name="mkdir-slapd-win" depends="init" if="windows">
        <echo message="###############  Create the folder for windows slapd by running ${mkdir.slapd-win}"/>
        <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${install.image.loc}">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${mkdir.slapd-win}"/>
        </exec>
    </target>

    <!-- =================================
          call the target to uninstall slapd server
         ================================= -->
    <target name="uninstall-slapd" depends="init">
        <antcall target="uninstall-slapd-win"></antcall>
        <antcall target="uninstall-slapd-nix"></antcall>
    </target>

    <!-- =================================
          uninstall slapd from unix system
         ================================= -->
    <target name="uninstall-slapd-nix" depends="init" unless="windows">
        <echo message="###############  Uninstall OpenLDAP binaries"/>
        <exec dir="." executable="/bin/sh">
            <arg line="${uninstall.slapd.script}"/>
            <arg value="${slapd.uninstall}"/>
        </exec>
    </target>

    <!-- =================================
          call the target to uninstall slapd from windows system
         ================================= -->
    <target name="uninstall-slapd-win" depends="init" if="windows">
        <antcall target="uninstall-slapd-win-if-present"></antcall>
    </target>

    <!-- =================================
          if detect running windows uninstall slapd server from windows system.
         ================================= -->
    <target name="uninstall-slapd-win-if-present" depends="slapd.dir.check" if="slapd.dir.exists">
        <echo message="###############  Uninstall OpenLDAP WIN binaries: from ${slapd.exe.location2}"/>
        <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.location2}" >
            <arg value="/${fortress.home.drive}"/>
            <arg value="${uninstall.image.exe}"/>
            <arg value="/S"/>
        </exec>
    </target>

    <!-- =================================
          call the target to uninstall slapd server
         ================================= -->
    <target name="install-slapd" depends="init">
        <antcall target="install-slapd-win"></antcall>
        <antcall target="install-slapd-nix"></antcall>
    </target>

    <!-- =================================
          uninstall slapd from unix system
         ================================= -->
    <target name="install-slapd-nix" depends="init" unless="windows">
        <echo message="###############  Install OpenLDAP binaries"/>
        <exec dir="${openldap.install.artifact.dir}" executable="/bin/sh">
            <arg line="${install.slapd.script}"/>
            <arg value="${slapd.install}"/>
        </exec>
    </target>

    <!-- =================================
          uninstall slapd from windows system
         ================================= -->
    <target name="install-slapd-win" depends="init" if="windows">
        <echo message="###############  Install OpenLDAP WIN binaries to ${slapd.exe.location}"/>
        <mkdir dir="${slapd.exe.location}"/>
        <exec command="cmd.exe" spawn="false" osfamily="windows" dir="${install.image.loc}">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${install.image.exe}"/>
            <arg value="/S"/>
            <arg value="/D=${slapd.exe.location}"/>
        </exec>
    </target>

    <!-- =================================
          call the target to start the slapd server
         ================================= -->
    <target name="start-slapd" depends="init" description="--> start the OpenLDAP server">
        <antcall target="start-slapd-win"></antcall>
        <antcall target="start-slapd-nix"></antcall>
    </target>

    <!-- =================================
          start the slapd server on unix system
         ================================= -->
    <target name="start-slapd-nix" depends="init" unless="windows">
        <echo message="###############  Start the slapd process up  ###############"/>
        <exec dir="." executable="/bin/sh">
            <arg line="${start.slapd.script}"/>
            <arg value="${slapd.start}"/>
        </exec>
    </target>

    <!-- =================================
          call the target to stop the slapd server
         ================================= -->
    <target name="stop-slapd" depends="init" description="--> stop the OpenLDAP server">
        <antcall target="stop-slapd-win"></antcall>
        <antcall target="stop-slapd-nix"></antcall>
    </target>

    <!-- =================================
          stop the slapd server on unix system
         ================================= -->
    <target name="stop-slapd-nix" depends="init" unless="windows">
        <echo message="###############  Stop the slapd process"/>
        <exec dir="." executable="/bin/sh">
          <arg line="${stop.slapd.script}"/>
        </exec>
    </target>

    <!-- =================================
          start the slapd server on windows system
         ================================= -->
    <target name="start-slapd-win" depends="init" if="windows">
       <echo message="###############  Start the slapd process up: ${dst.start.slapd.script-win} in ${slapd.exe.dir}"/>       
        <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.drive}:/${slapd.exe.dir}">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${dst.start.slapd.script-win}"/>
        </exec>
    </target>

    <!-- =================================
          return true if slapd bin folder exists
         ================================= -->
    <target name="slapd.dir.check">
        <condition property="slapd.dir.exists">
            <available file="${slapd.exe.location}" type="dir"/>
    </condition>
     </target>

    <!-- =================================
          call the target to stop the slapd server on windows system
         ================================= -->
    <target name="stop-slapd-win" depends="init" if="windows">
        <antcall target="stop-slapd-win-if-present"></antcall>
    </target>

    <!-- =================================
          if slapd dir exists stop the slapd server on windows system
         ================================= -->
    <target name="stop-slapd-win-if-present" depends="slapd.dir.check" if="slapd.dir.exists">
        <echo>${directory} exists</echo>
        <echo message="###############  Stop the slapd process by running ${stop.slapd.script-win}"/>
        <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.location}">
            <arg value="/${fortress.home.drive}"/>
            <arg value="${stop.slapd.script-win}"/>
        </exec>
    </target>

    <!-- =================================
          target: bdb-delete - Use Caution as it removes the file volume containing the BerkeleyDB User data!
          This operation is destructive and non-reversible.  It is intended for clearing out existing systems data
          before reinstalling with brand new data.

          Never run this Ant target on a production system.
         ================================= -->
     <target name="bdb-delete" depends="init" description="--> delete OpenLDAP DB">
         <echo message="Delete BDB DB"/>

         <exec dir="." executable="/bin/sh">
           <arg line="${stop.slapd.script}"/>
         </exec>

         <delete dir="${db.dir}"/>

     </target>

    <!-- =================================
          target: init-jaxb - initializes properties and taskdefs used for schema generation and compilation.
         ================================= -->
<!--
    <target name="init-jaxb" depends="resolve" description="&ndash;&gt; initializes properties and taskdefs used for schema generation and compilation">

        <property name="generated.dir" value="${basedir}/generated"/>
        <property name="generated.classes.dir" value="${generated.dir}/classes"/>
        <property name="generated.schema.dir" value="${generated.dir}/schema"/>

       &lt;!&ndash; Defines XJC and SchemaGen tasks &ndash;&gt;
        <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
            <classpath refid="build.class.path"/>
        </taskdef>

        <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask">
                <classpath refid="build.class.path"/>
        </taskdef>

    </target>
-->

    <!-- =================================
          target: generate-schema - generates JAXB schmea based on Java classes.
         ================================= -->
<!--
    <target name="generate-schema" depends="init-jaxb,compile" description="&ndash;&gt; generates JAXB schema based on Fortress entity classes">
        <echo message="Generating schemas..."/>
        <mkdir dir="${generated.schema.dir}"/>
        <schemagen srcdir="${src.java.dir}/org/openldap/fortress" destdir="${generated.schema.dir}">
            <classpath refid="build.class.path"/>
            <include name="rbac/Address.java"/>
            <include name="rbac/AdminRole.java"/>
            <include name="rbac/AdminRoleRelationship.java"/>
            <include name="rbac/AuthZ.java"/>
            <include name="rbac/Bind.java"/>
            <include name="util/time/Constraint.java"/>
            <include name="FortEntity.java"/>
            <include name="rest/FortRequest.java"/>
            <include name="rest/FortResponse.java"/>
            <include name="rbac/Mod.java"/>
            <include name="rbac/OrgUnit.java"/>
            <include name="rbac/OrgUnitRelationship.java"/>
            <include name="rbac/Permission.java"/>
            <include name="rbac/PermGrant.java"/>
            <include name="rbac/Permission.java"/>
            <include name="rbac/PermObj.java"/>
            <include name="rbac/Props.java"/>
            <include name="rbac/PwPolicy.java"/>
            <include name="rbac/Role.java"/>
            <include name="rbac/RolePerm.java"/>
            <include name="rbac/RoleRelationship.java"/>
            <include name="rbac/SDSet.java"/>
            <include name="rbac/Session.java"/>
            <include name="rbac/User.java"/>
            <include name="rbac/UserAdminRole.java"/>
            <include name="rbac/UserAudit.java"/>
            <include name="rbac/UserRole.java"/>
        </schemagen>
    </target>
-->

    <!-- =================================
          target: compile-schema - generates Java classes based on schema.
         ================================= -->
<!--
    <target name="compile-schema" depends="init-jaxb,generate-schema" description="&ndash;&gt; generates Java classes based on Fortress schema">
        <echo message="Compiling the schema..."/>
        <mkdir dir="${generated.classes.dir}"/>
        <xjc schema="${generated.schema.dir}/schema1.xsd" destdir="${src.java.dir}" package="org.apache.directory.fortress.model" removeOldOutput="yes"/>
    </target>
-->

</project>
