<?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

-->

<project name="db-targets" default="all" basedir=".">

<target name="start-derby" depends="setOSConditions" if="v3">
    <antcall target="start-derby-unix"/>
    <antcall target="start-derby-windows"/>
</target>

<target name="start-derby-windows" if="isWindows">
    <exec executable="cmd" spawn="true">
        <arg value="/c"/>
        <arg value="${glassfish.home}\bin\asadmin.bat"/>
        <arg value="start-database"/>
    </exec>
</target>

<target name="start-derby-unix" if="isUnix">
    <exec executable="${glassfish.home}/bin/asadmin" spawn="true">
        <arg value="start-database"/>
    </exec>
</target>

<target name="stop-derby" depends="setOSConditions" if="v3">
    <antcall target="stop-derby-unix"/>
    <antcall target="stop-derby-windows"/>
</target>

<target name="stop-derby-windows" if="isWindows">
    <exec executable="cmd" spawn="true">
        <arg value="/c"/>
        <arg value="${glassfish.home}\bin\asadmin.bat"/>
        <arg value="stop-database"/>
    </exec>
</target>

<target name="stop-derby-unix" if="isUnix">
    <exec executable="${glassfish.home}/bin/asadmin">
        <arg value="stop-database"/>
    </exec>
</target>

<target name="enable-security-manager" depends="setOSConditions">
    <antcall target="enable-security-manager-unix"/>
    <antcall target="enable-security-manager-windows"/>
</target>

<target name="enable-security-manager-windows" if="isWindows">
    <exec executable="cmd" spawn="true">
        <arg value="/c"/>
        <arg value="${glassfish.home}\bin\asadmin.bat"/>
        <arg line="create-jvm-options"/>
        <arg line="-Djava.security.manager"/>
    </exec>
</target>

<target name="enable-security-manager-unix" if="isUnix">
    <exec executable="${glassfish.home}/bin/asadmin">
        <arg line="create-jvm-options"/>
        <arg line="-Djava.security.manager"/>
    </exec>
</target>

<target name="disable-security-manager" depends="setOSConditions">
    <antcall target="disable-security-manager-unix"/>
    <antcall target="disable-security-manager-windows"/>
</target>

<target name="disable-security-manager-windows" if="isWindows">
    <exec executable="cmd" spawn="true">
        <arg value="/c"/>
        <arg value="${glassfish.home}\bin\asadmin.bat"/>
        <arg line="delete-jvm-options"/>
        <arg line="-Djava.security.manager"/>
    </exec>
</target>

<target name="disable-security-manager-unix" if="isUnix">
    <exec executable="${glassfish.home}/bin/asadmin">
        <arg line="delete-jvm-options"/>
        <arg line="-Djava.security.manager"/>
    </exec>
</target>

<target name="add-quicklook-policy-grants">
  <move file="${glassfish.home}/domains/domain1/config/server.policy"
        tofile="${glassfish.home}/domains/domain1/config/server_policy.orig"/>
  <concat append="true"
          destfile="${glassfish.home}/domains/domain1/config/server.policy">
    <fileset file="${glassfish.home}/domains/domain1/config/server_policy.orig"/>
    <fileset file="${basedir}/weld/numberguess/numberguess.policy"/>   
    <fileset file="${basedir}/weld/extensions/extensions.policy"/>   
    <fileset file="${basedir}/osgitest/basicosgi/security.policy"/>   
  </concat>
</target>

<target name="remove-quicklook-policy-grants">
  <delete file="${glassfish.home}/domains/domain1/config/server.policy"/>
  <move file="${glassfish.home}/domains/domain1/config/server_policy.orig"
        tofile="${glassfish.home}/domains/domain1/config/server.policy"/>
</target>

<target name="startDerby" depends="initprop">
    <echo message="Starting Derby DB servers in the Network Mode"/>    
    
    <java classname="org.apache.derby.drda.NetworkServerControl"
          classpathref="db.class.path" fork="true" spawn="true">
        <sysproperty key="derby.system.home" value="${derby.home}"/>
        <arg line="-h localhost -p ${db.port} start"/>
    </java> 
    <echo message="Finished starting datbase"/>
</target>

<target name="stopDerby" depends="initprop">
    <echo message="Stopping Derby DB servers in the Network Mode"/>
    
    <java classname="org.apache.derby.drda.NetworkServerControl"
          classpathref="db.class.path" fork="true">
        <sysproperty key="derby.system.home" value="${derby.home}"/>
        <arg line="shutdown -h localhost -p ${db.port}"/>
    </java> 
    <echo message="Finished stopping datbase"/>
</target>

<target name="sql-common" depends="initprop">
  <echo message="sql.file = ${sql.file}"/>
  <echo message="db.class.path = ${db.class.path}"/>
  <sql
    driver="${db.driver}"
    url="${db.url}"
    userid="${db.user}"
    password="${db.pwd}"
    src="${sql.file}"
    onerror="continue"
    print="yes"
    classpath="${db.class.path}">
  </sql> 
</target>

<target name="create-db" depends="initprop,delete-db"
        description="Create database tables and populate database." >
    <echo>database=${db.type}</echo>
    <echo>driver=${db.driver}</echo>
    <echo>url=${db.url}</echo>
    <echo>user=${db.user}</echo>
    <echo>password=${db.password}</echo>
    <echo>db.class.path=db.class.path</echo>
    
    <sql driver="${db.driver}"
         encoding="utf-8"
         url="${db.url}"
         userid="${db.user}"
         password="${db.password}"
         classpathref="db.class.path"
         delimiter="${db.delimiter}"
         print="true"
         autocommit="false"
         onerror="abort" >
        <transaction src="sql/create_${db.type}.sql"/>
        <transaction>
		    select city from web_customer where cust_id=1;
		    select * from web_customer where custname Like 'Alice_1';
	    </transaction>
	    
    </sql>
    
</target>
<target name="delete-db"  
        description="Deletes the database tables." depends="initprop">
    <echo>driver=${db.driver}</echo>
    <echo>url=${db.url}</echo>
    <echo>user=${db.user}</echo>
    <echo>password=${db.password}</echo>       
    <sql driver="${db.driver}"
         encoding="utf-8"
         url="${db.url}"
         userid="${db.user}"
         password="${db.password}"
         classpathref="db.class.path"
         delimiter="${db.delimiter}"
         autocommit="true"
         onerror="continue">       
        <transaction src="sql/drop_${db.type}.sql"/>
    </sql>
</target>

<target name="initprop" >
    <echo message="JavaDB Database Location : ${derby.home}" />
    <property name="ips.derby" value="${glassfish.home}/../javadb"/>
    <property name="db.class.path" value="${derby.home}/lib/derbyclient.jar:${ips.derby}/lib/derbyclient.jar"/>
</target>
</project>
