<?xml version="1.0"?>
<!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 commonSetup SYSTEM "./../../../config/common.xml">
<!ENTITY commonBuild SYSTEM "./../../../config/properties.xml">
<!ENTITY jdbcCommon SYSTEM "./../JdbcCommon.xml">
<!ENTITY jdbcCommonProps SYSTEM "./../JdbcCommon.properties">
<!ENTITY testproperties SYSTEM "./build.properties">
]>

<project name="init-sql" basedir="." default="usage">

  &commonSetup;
  &commonBuild;
  &testproperties;
  &jdbcCommon;
  &jdbcCommonProps;
    
  <target name="all" depends="clean,build,deploy,run,undeploy"/>
  
  <target name="clean" depends="init-common">
    <delete dir="${build.classes.dir}"/>
    <delete dir="${assemble.dir}"/>
  </target>
  
  <target name="compile" depends="clean">
    <antcall target="compile-common">
      <param name="src" value="ejb"/>
    </antcall>

    <antcall target="compile-common">
      <param name="src" value="client"/>
    </antcall>
  </target>

  <target name="build" depends="compile">
    <antcall target="build-ear-common">
      <param name="ejbjar.classes" value="**/*.class"/>
      <param name="appclientjar.classes"
        value="**/*.class"/>
    </antcall>
    <antcall target="ear-common"/>
  </target>

  <target name="deploy" depends="init-common">
    <antcall target="deploy-jdbc-oracle-common">
	<param name="oracle.pool.name" value="jdbc-oracle-pool-initsql"/>
	<param name="oracle.resource.name" value="jdbc/oracleres-initsql"/>
    </antcall>
    <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
		    value="${resources.dottedname.prefix}.jdbc-connection-pool.jdbc-oracle-pool-initsql.init-sql='ALTER SESSION SET NLS_COMP=LINGUISTIC NLS_SORT=BINARY_CI'"/>
    </antcall>
    <antcall target="deploy-common"/>
    <antcall target="execute-sql-oracle-common">
	<param name="sql.file" value="sql/create.sql"/>
    </antcall>
  </target>

  <target name="undeploy" depends="init-common">
    <antcall target="undeploy-jdbc-oracle-common">
	<param name="oracle.pool.name" value="jdbc-oracle-pool-initsql"/>
	<param name="oracle.resource.name" value="jdbc/oracleres-initsql"/>
    </antcall>
    <antcall target="undeploy-common"/>
    <antcall target="execute-sql-oracle-common">
      <param name="sql.file" value="sql/drop.sql"/>
    </antcall>
  </target>
  
  <target name="run">
    <antcall target="runclient-common">
      <param name="appclient.application.args" value="1"/>
    </antcall>
    <antcall target="asadmin-common">
      <param name="admin.command" value="set"/>
      <param name="operand.props"
        value="${resources.dottedname.prefix}.jdbc-connection-pool.jdbc-oracle-pool-initsql.init-sql='ALTER SESSION SET NLS_SORT=BINARY'"/>
    </antcall>
    <antcall target="restart-server"/>
    <antcall target="runclient-common">
      <param name="appclient.application.args" value="2"/>
    </antcall>
  </target>
  
  <target name="usage">
    <antcall target="usage-common"/>
  </target>
  
</project>
