<!DOCTYPE project [
<!--

    Copyright (c) 2017, 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

-->

  <!ENTITY common SYSTEM "../../../../../config/common.xml">
  <!ENTITY testcommon SYSTEM "../../../../../config/properties.xml">
]>

<project name="JDBCConnector top level" default="build">
    <property name="pkg.dir" value="com/sun/jdbcra/spi"/>

    &common;
    &testcommon;
    <property file="./build.properties"/>

    <target name="build" depends="compile,assemble" />


    <!-- init. Initialization involves creating publishing directories and
         OS specific targets. -->
    <target name="init" description="${component.name} initialization">
        <tstamp>
            <format property="start.time" pattern="MM/dd/yyyy hh:mm aa"/>
        </tstamp>
        <echo message="Building component ${component.name}"/>
        <mkdir dir="${component.classes.dir}"/>
        <mkdir dir="${component.lib.home}"/>
    </target>
    <!-- compile -->
    <target name="compile" depends="init"
            description="Compile com/sun/* com/iplanet/* sources">
        <!--<echo message="Connector api resides in ${connector-api.jar}"/>-->
        <javac srcdir="${src.dir}"
               destdir="${component.classes.dir}"
               failonerror="true">
               <classpath>
                  <fileset dir="${env.S1AS_HOME}/modules">
                     <include name="**/*.jar" />
                  </fileset>
               </classpath>
            <include name="com/sun/jdbcra/**"/>
            <include name="com/sun/appserv/**"/>
        </javac>
    </target>

    <target name="all" depends="build"/>

   <target name="assemble">

        <jar jarfile="${component.lib.home}/jdbc.jar"
            basedir="${component.classes.dir}" includes="${pkg.dir}/**/*,
            com/sun/appserv/**/*, com/sun/jdbcra/util/**/*, com/sun/jdbcra/common/**/*"/>

        <copy file="${src.dir}/com/sun/jdbcra/spi/1.4/ra-ds.xml"
                tofile="${component.lib.home}/ra.xml" overwrite="yes">
        </copy>
           <jar jarfile="${component.lib.home}/jdbcra.rar"
                basedir="${component.lib.home}" includes="jdbc.jar">

                   <metainf dir="${component.lib.home}">
                           <include name="ra.xml"/>
                   </metainf>
           </jar>

           <delete file="${component.lib.home}/ra.xml"/>

  </target>

    <target name="clean" description="Clean the build">
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${component.classes.dir}"/>
            <fileset dir="${component.lib.home}"/>
        </delete>
    </target>

</project>

