<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!--
Contains common definition that are platform dependent
-->
<target name="tools.init">
    <condition property="windows">
        <os family="windows" />
    </condition>
    <condition property="unix">
        <os family="unix" />
    </condition>
    <condition property="solaris">
        <os name="SunOS"/>
    </condition>
    <condition property="linux">
        <os name="Linux"/>
    </condition>
    <condition property="mac">
        <os name="Mac OS X"/>
    </condition>
</target>
<target name="tools.init.windows" if="windows">
    <property name="JAVAH" value="${java.home}/../bin/javah.exe"/>
    <property name="MAKE" value="gmake"/>
</target>
<target name="tools.init.unix" if="unix" unless="mac">
    <property name="JAVAH" value="${java.home}/../bin/javah"/>
    <property name="MAKE" value="gmake"/>
</target>
    <target name="tools.init.mac" if="mac">
    <property name="JAVAH" value="${java.home}/bin/javah"/>
    <property name="MAKE" value="make"/>
</target>
<target name="tools.init.platform" 
    depends="tools.init, tools.init.windows, tools.init.unix, tools.init.mac">
</target>
    

<!--
    Definitions for Checkstyle
-->
<target name="checkstyle"
        description="Generates a report of coding convention violations.">

    <!-- Get properties from environment -->
    <property environment="env"/>

    <!-- Set default values if these are not in the environment / cmd line -->
    <!-- Order of preference is cmd line, environment, default -->
    <property name="env.JWS_EXTERNAL_COMPONENTS_DIR" value="/net/koori.sfbay/onestop/s1aspe/8.0/external"/>
    <property name="JWS_EXTERNAL_COMPONENTS_DIR" value="${env.JWS_EXTERNAL_COMPONENTS_DIR}"/>
    <property name="env.CHECKSTYLE_HOME" value="${JWS_EXTERNAL_COMPONENTS_DIR}/checkstyle"/>

    <!-- CHECKSTYLE_HOME contains Checkstyle jars and config files -->
    <property name="CHECKSTYLE_HOME" value="${env.CHECKSTYLE_HOME}"/>

    <taskdef resource="checkstyletask.properties" classpath="${CHECKSTYLE_HOME}/checkstyle-all-3.5.jar:${CHECKSTYLE_HOME}/checkstyle-sun-modules.jar"/>


    <!-- CHECKSTYLE_DIR, CHECKSTYLE_FILES, CHECKSTYLE_STYLESHEET, 
         CHECKSTYLE_CONFIG and CHECKSTYLE_OUTPUT variables have defaults below.
	 They can be overridden by setting corresponding env variables 
	 in the shell, or from the command line:
         % ant -DCHECKSTYLE_DIR=somedir -DCHECKSTYLE_FILES="*.java" ....
         (command-line overrides environment vars).  -->
    <condition property="CHECKSTYLE_FILES" 
	       value="${env.CHECKSTYLE_FILES}">
        <isset property="env.CHECKSTYLE_FILES"/>
    </condition>
    <property name="CHECKSTYLE_FILES" value="**/*.java"/>

    <condition property="CHECKSTYLE_DIR" 
	       value="${env.CHECKSTYLE_DIR}">
        <isset property="env.CHECKSTYLE_DIR"/>
    </condition>
    <property name="CHECKSTYLE_DIR" value="."/>

    <condition property="CHECKSTYLE_STYLESHEET" 
	       value="${env.CHECKSTYLE_STYLESHEET}">
        <isset property="env.CHECKSTYLE_STYLESHEET"/>
    </condition>
    <property name="CHECKSTYLE_STYLESHEET" 
              value="${CHECKSTYLE_HOME}/checkstyle-noframes-sorted.xsl"/>

    <condition property="CHECKSTYLE_OUTPUT" 
	       value="${env.CHECKSTYLE_OUTPUT}">
        <isset property="env.CHECKSTYLE_OUTPUT"/>
    </condition>
    <property name="CHECKSTYLE_OUTPUT" value="checkstyle-report.html"/>

    <condition property="CHECKSTYLE_CONFIG" 
	       value="${env.CHECKSTYLE_CONFIG}">
        <isset property="env.CHECKSTYLE_CONFIG"/>
    </condition>
    <property name="CHECKSTYLE_CONFIG" value="${CHECKSTYLE_HOME}/as-checks.xml"/>


    <echo message="Running Checkstyle on ${CHECKSTYLE_DIR}/${CHECKSTYLE_FILES} using configuration ${CHECKSTYLE_CONFIG} and writing report to ${CHECKSTYLE_OUTPUT}"/>

    <checkstyle config="${CHECKSTYLE_CONFIG}"
                failOnViolation="false">
        <formatter type="xml" tofile="checkstyle-report.xml"/>
        <fileset dir="${CHECKSTYLE_DIR}" includes="${CHECKSTYLE_FILES}"/>
    </checkstyle>

    <style in="checkstyle-report.xml" out="${CHECKSTYLE_OUTPUT}" style="${CHECKSTYLE_STYLESHEET}"/>

    <delete file="checkstyle-report.xml"/>

</target>


<target name="-push-to-maven-init" description="define a task for pushing bits to the maven repository">
    <echo>${maven.repo.local}/com.sun.wts.tools.mri/jars/maven-repository-importer-${glassfish.maven_repository_importer.version}.jar</echo>
    <taskdef resource="maven-repository-importer.properties">
        <classpath>
            <pathelement path="${maven.repo.local}/com.sun.wts.tools.mri/jars/maven-repository-importer-${glassfish.maven_repository_importer.version}.jar" />
        </classpath>
    </taskdef>
</target>

<!--
  import files to CVS
  
  For example, <cvs-import src="build/doc" dest="jaxb/www/doc" />
-->
<macrodef name="cvs-import">
    <attribute name="src"/>
    <attribute name="dest"/>
    <sequential>
        <tstamp />
        <echo>importing to CVS...</echo>
        <cvs dest="@{src}">
            <commandline>
                <argument value="-d${glassfish.cvsroot}"/>
                <argument line="-z9 import -ko"/>
                <argument value="-W"/>
                <argument line="*.jar -kb"/>
                <argument value="-m"/>
                <argument value="deploying new jars to the java.net maven repository"/>
                
                <argument value="@{dest}"/>
                <argument line="deployment-to-maven-repository t${DSTAMP}${TSTAMP}" />
            </commandline>
        </cvs>
    </sequential>
</macrodef>
