<!--
  Copyright (C) 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">

   <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 Websphere"/>
       <property name="name" value="fortressSentry"/>
       <property name="version" value="1.0-RC18"/>
       <property name="title" value="Fortress Java Sentry Websphere ${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="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="fortressUserRegistry.jar" value="${dist.dir}/fortressProxyWebSphere-${version}.jar"/>
       <property name="fortressSentry.jar" value="${dist.dir}/fortressSentry-${version}.jar"/>
       <property name="fortressSentry.zip" value="${dist.dir}/fortressSentryWebsphereDist-${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="config.dir" value="${basedir}/conf"/>
       <!-- Dependent LIBs, not in maven -->
       <property name="fortress.jar" value="${lib.dir}/fortress-${version}.jar"/>
       <property name="ws_runtime.jar" value="${lib.dir}/ws_runtime.jar"/>
       <!-- Dependent LIBs in maven -->
       <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}"/>
           <pathelement location="${ws_runtime.jar}"/>
           <!--pathelement location="${websphere.jar}"/-->
       </path>

       <path id="build.proxy.tc7.class.path">
           <!-- J2EE JARs -->
           <pathelement location="${catalina7.jar}"/>
           <pathelement location="${ws_runtime.jar}"/>
       </path>

       <path id="build.impl.class.path">
           <!-- J2EE JARs -->
           <pathelement location="${catalina.jar}"/>
           <pathelement location="${ws_runtime.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="${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>

   </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" unless="local.mode">
        <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="com/jts/fortress/sentry/tomcat/Tc7AccessMgrProxy.java"/>
             <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="com/jts/fortress/sentry/tomcat/TcAccessMgrProxy.java"/>
             <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}">
             <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="com/jts/fortress/sentry/tomcat/**"/>
              <include name="com/jts/fortress/sentry/util/**"/>
              <exclude name="com/jts/fortress/sentry/tomcat/Tc7AccessMgrProxy.class"/>
          </fileset>
           <fileset dir="${build.classes.impl.dir}">
               <include name="com/jts/fortress/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="com/jts/fortress/sentry/tomcat/**"/>
              <include name="com/jts/fortress/sentry/util/**"/>
              <exclude name="com/jts/fortress/sentry/tomcat/TcAccessMgrProxy.class"/>
          </fileset>
           <fileset dir="${build.classes.impl.dir}">
               <include name="com/jts/fortress/sentry/tomcat/TcPrincipal.class"/>
           </fileset>
          <metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
       </fortressSentry.jar>
    </target>

    <target name="build-jar-wsproxy" depends="compile-proxy">
       <mkdir dir="${dist.dir}"/>
       <fortressSentry.jar destfile="${fortressUserRegistry.jar}">
          <fileset dir="${build.classes.proxy.dir}">
              <include name="com/jts/fortress/sentry/websphere/**"/>
              <include name="com/jts/fortress/sentry/util/**"/>
          </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" depends="clean,build-jar-tcproxy,build-jar-tc7proxy,build-jar-wsproxy,build-jar-impl, build-jar-distro,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"/>
      <copy todir="${dist.dir}" file="${basedir}/WEBSPHERE-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"/>
                <include name="fortressUserRegistry*.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"/>
                <exclude name="fortressUserRegistry*.jar"/>
            </zipfileset>
            <zipfileset dir="${config.dir}" prefix="conf">
                <include name="*.xml"/>
                <include name="*.properties"/>
            </zipfileset>
            <zipfileset dir='${basedir}'>
                <include name="*.txt"/>
            </zipfileset>
        </zip>
     </target>


</project>
