<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project name="Apache Knox Gateway" default="build" basedir=".">

    <description>
        Release build file for the Apache Knox Gateway
    </description>

    <property name="gateway-name" value="Apache Knox (Incubator)"/>
    <property name="gateway-project" value="knox"/>
    <property name="gateway-artifact" value="knox-incubating"/>
    <property name="gateway-version" value="0.3.0"/>
    <property name="release-manager" value="kminder"/>

    <property name="gateway-home" value="${gateway-artifact}-${gateway-version}"/>

    <property name="build-url" value="https://builds.apache.org/job/Knox-${gateway-version}/ws/target/${gateway-version}"/>
    <property name="candidate.path" value="candidate"/>

    <property name="svn.release.path" value="https://dist.apache.org/repos/dist/release/incubator/${gateway-project}" />
    <property name="svn.staging.path" value="https://dist.apache.org/repos/dist/dev/incubator/${gateway-project}" />

    <condition property="isUnix">
        <os family="unix"/>
    </condition>

    <condition property="mvn.cmd" value="mvn">
        <os family="unix" />
    </condition>
    <condition property="mvn.cmd" value="mvn.bat">
        <os family="windows" />
    </condition>

    <condition property="svn.cmd" value="svn">
        <os family="unix" />
    </condition>
    <condition property="svn.cmd" value="svn">
        <os family="windows" />
    </condition>

    <condition property="curl.cmd" value="curl">
        <os family="unix" />
    </condition>
    <condition property="curl.cmd" value="curl">
        <os family="windows" />
    </condition>

    <condition property="rpm-builder" value="./gateway-rpm/build_knox_rpm.sh">
        <os family="unix" />
    </condition>

    <target name="_init" description="Initialize the build.">
    </target>

    <target name="clean" depends="_init" description="Clean up any build artifacts.">
        <delete file="target"/>
        <delete file="install"/>
        <delete file="${candidate.path}"/>
    </target>

    <target name="build" depends="_init" description="Build the product.">
        <exec executable="${mvn.cmd}">
            <arg value="clean"/>
            <arg value="install"/>
        </exec>
    </target>

    <target name="verify" depends="package" description="Perform the verification build."/>
    <target name="package" depends="_init" description="Build and package the product (aka verify).">
        <exec executable="${mvn.cmd}">
            <arg value="-Prelease"/>
            <arg value="clean"/>
            <arg value="install"/>
        </exec>
        <copy file="KEYS" todir="target/${gateway-version}">
            <fileset file="KEYS"/>
            <fileset file="gateway-release/home/CHANGES"/>
        </copy>
    </target>

    <target name="daily" depends="full" description="Perform the daily build."/>
    <target name="full" depends="_init" description="Perform a full build (aka daily).">
        <exec executable="${mvn.cmd}">
            <arg value="-Panalyze"/>
            <arg value="-Prelease"/>
            <arg value="site"/>
        </exec>
    </target>

    <target name="post-build" depends="_init,_rpm,_changes"/>

    <target name="_changes" depends="_init">
        <copy file="gateway-release/home/CHANGES" todir="target/${gateway-version}"/>
    </target>

    <target name="set-rpm-builder-privs" if="isUnix">
        <chmod file="${rpm-builder}" perm="700"/>	     
    </target>

    <target name="rpm" depends="package,_rpm" description="Package and build RPM of the product."/>
    <target name="_rpm" depends="_init,set-rpm-builder-privs" description="Build RPM of the product from existing package.">
        <exec executable="${rpm-builder}">
            <arg value="target"/>
            <arg value="${gateway-artifact}"/>
            <arg value="${gateway-version}"/>
            <arg value="${release-manager}"/>
        </exec>
        <checksum file="target/${gateway-version}/${gateway-artifact}-${gateway-version}.rpm" algorithm="MD5" fileext=".md5" forceOverwrite="yes"/>
        <checksum file="target/${gateway-version}/${gateway-artifact}-${gateway-version}.rpm" algorithm="SHA1" fileext=".sha" forceOverwrite="yes"/>
    </target>

    <target name="build-candidate">
        <exec executable="${curl.cmd}">
            <arg value="--silent"/>
            <arg value="--request"/>
            <arg value="POST"/>
            <arg value="https://builds.apache.org/job/Knox-${gateway-version}/build?token=knox-remote-build-token"/>
        </exec>
    </target>

    <target name="download-candidate">
        <mkdir dir="${candidate.path}"/>
        <get dest="${candidate.path}">
            <url url="${build-url}/knox-incubating-${gateway-version}.zip"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.zip.md5"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.zip.sha"/>
            <url url="${build-url}/knox-incubating-${gateway-version}-src.zip"/>
            <url url="${build-url}/knox-incubating-${gateway-version}-src.zip.md5"/>
            <url url="${build-url}/knox-incubating-${gateway-version}-src.zip.sha"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.tar.gz"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.tar.gz.md5"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.tar.gz.sha"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.rpm"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.rpm.md5"/>
            <url url="${build-url}/knox-incubating-${gateway-version}.rpm.sha"/>
            <url url="${build-url}/CHANGES"/>
        </get>
    </target>

    <target name="sign-candidate" depends="_init" description="Sign a downloaded created release.">
        <delete>
            <fileset dir="${candidate.path}" includes="*.asc,KEYS"/>
        </delete>
        <exec executable="gpg" dir="${candidate.path}">
            <arg value="--armor"/>
            <arg value="--detach-sig"/>
            <arg value="${gateway-artifact}-${gateway-version}.rpm"/>
        </exec>
        <exec executable="gpg" dir="${candidate.path}">
            <arg value="--armor"/>
            <arg value="--detach-sig"/>
            <arg value="${gateway-artifact}-${gateway-version}.zip"/>
        </exec>
        <exec executable="gpg" dir="${candidate.path}">
            <arg value="--armor"/>
            <arg value="--detach-sig"/>
            <arg value="${gateway-artifact}-${gateway-version}.tar.gz"/>
        </exec>
        <exec executable="gpg" dir="${candidate.path}">
            <arg value="--armor"/>
            <arg value="--detach-sig"/>
            <arg value="${gateway-artifact}-${gateway-version}-src.zip"/>
        </exec>
        <exec executable="gpg" dir="${candidate.path}">
            <arg value="--export"/>
            <arg value="--armor"/>
            <arg value="--output"/>
            <arg value="KEYS"/>
        </exec>
        <copy file="src/vote.txt" tofile="target/vote.txt">
            <filterchain>
                <expandproperties/>
            </filterchain>
        </copy>
        <loadfile property="stage-message" srcFile="src/stage.txt">
            <filterchain>
                <expandproperties/>
            </filterchain>
        </loadfile>
        <echo message="${stage-message}"/>
    </target>

    <target name="release" depends="package,rpm" description="Build release artifacts including RPM and sign."/>

    <target name="stage-candidate" depends="unstage-candidate" description="Stage release artifacts.">
        <exec executable="svn">
            <arg value="import" />
            <arg value="${candidate.path}"/>
            <arg value="${svn.staging.path}/${gateway-artifact}-${gateway-version}/"/>
            <arg value="-m"/>
            <arg value="Staging Apache Knox Gateway version ${gateway-version}."/>
        </exec>
    </target>

    <target name="unstage-candidate" description="Delete staged release artifacts.">
        <exec executable="svn">
            <arg value="delete" />
            <arg value="${svn.staging.path}/${gateway-artifact}-${gateway-version}/"/>
            <arg value="-m"/>
            <arg value="Removing Apache Knox Gateway version ${gateway-version} from staging."/>
        </exec>
    </target>

    <target name="promote-release" description="Promote staged artifacts to release area.">
        <exec executable="svn">
            <arg value="move"/>
            <arg value="${svn.staging.path}/${gateway-artifact}-${gateway-version}"/>
            <arg value="${svn.release.path}"/>
            <arg value="-m"/>
            <arg value="Releasing Apache Knox Gateway version ${gateway-version}." />
        </exec>
    </target>

    <target name="install-test-home" description="Install binary release into install directory.">
        <delete dir="install" quiet="true"/>
        <unzip src="target/${gateway-version}/${gateway-artifact}-${gateway-version}.zip/" dest="install"/>
        <echo file="install/${gateway-artifact}-${gateway-version}/conf/security/master">#1.0# Mon, Aug 26 2013 14:25:31.483
cGkvajhUZHBNSTQ9OjpPMk5PQktYaHRyUmJoTW1zWGo0bytRPT06OkxtVjlvSDdIOWdvSEZqNTRlWVJ2N3c9PQ==</echo>
        <chmod file="install/${gateway-artifact}-${gateway-version}/conf/security/master" perm="600"/>
    </target>

    <target name="spawn-test-ldap" description="Spawn test LDAP server.">
        <exec executable="java" dir="install/${gateway-artifact}-${gateway-version}" spawn="true">
            <arg value="-jar"/>
            <arg value="bin/ldap.jar"/>
            <arg value="conf"/>
        </exec>
    </target>

    <target name="start-test-ldap" description="Spawn test LDAP server.">
        <exec executable="java" dir="install/${gateway-artifact}-${gateway-version}">
            <arg value="-jar"/>
            <arg value="bin/ldap.jar"/>
            <arg value="conf"/>
        </exec>
    </target>

    <target name="start-test-gateway" description="Start test gateway server.">
        <exec executable="java" dir="install/${gateway-artifact}-${gateway-version}">
            <arg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"/>
            <arg value="-jar"/>
            <arg value="bin/gateway.jar"/>
        </exec>
    </target>

    <target name="start-test-servers" depends="spawn-test-ldap,start-test-gateway" description="Spawn test LDAP server and start test gateway server."/>

</project>
