<project name="oracle-db-setup" default="clean-schema" basedir=".">
    <echo message="user.home = '${user.home}'"/>
    <echo message="Loading user properties from: '${user.home}/test.properties'"/>
    <property file="${user.home}/test.properties"/>
    <property name="db.sys.user" value="sys as sysdba"/>
    <property name="db.sys.pwd" value="orasys9"/>
    <property name="DB_USER" value="${db.user}"/>
    <property name="DB_PWD" value="${db.pwd}"/>
    <property name="PROXY_USER" value="${db.user}_PROXY"/>
    <property name="PROXY_USER2" value="${db.user}_PROXY2"/>
    <property name="PROXY_PWD" value="password"/>
    <property name="PROXY_PWD2" value="password"/>

    <target name="clean-schema">

        <echo message="DB_USER = ${DB_USER}"/>
        <echo message="DB_PWD = ${DB_PWD}"/>
        <echo message="PROXY_USER = ${PROXY_USER}"/>
        <echo message="PROXY_PWD = ${PROXY_PWD}"/>

        <sql driver="${db.driver}"
              url="${db.url}"
              userid="${db.sys.user}"
              password="${db.sys.pwd}"
              print="true"
              onerror="continue"
              expandProperties="true">
            <classpath>
               <pathelement location="${jdbc.driver.jar}"/>
            </classpath>
DROP USER ${DB_USER} CASCADE;

CREATE USER ${DB_USER} PROFILE "DEFAULT" IDENTIFIED BY ${DB_PWD} ACCOUNT UNLOCK;
REM "The following line is required for Oracle DB version 12.1"
GRANT UNLIMITED TABLESPACE TO ${DB_USER};
GRANT CONNECT TO ${DB_USER};
GRANT RESOURCE TO ${DB_USER};
GRANT CREATE SESSION TO ${DB_USER};
GRANT create any view TO ${DB_USER};
GRANT create any context TO ${DB_USER};
GRANT drop any context TO ${DB_USER};
GRANT execute on dbms_flashback TO ${DB_USER};
GRANT execute on dbms_rls TO ${DB_USER};
GRANT execute on dbms_session TO ${DB_USER};
GRANT change notification TO ${DB_USER};
REM "The following 2 lines are required for DBWS Oracle-specific tests"
GRANT create any directory TO ${DB_USER};
GRANT drop any directory TO ${DB_USER};
        </sql>
    </target>

    <target name="setup-proxy-authentication" depends="clean-schema">

        <echo message="DB_USER = ${DB_USER}"/>
        <echo message="DB_PWD = ${DB_PWD}"/>
        <echo message="PROXY_USER = ${PROXY_USER}"/>
        <echo message="PROXY_PWD = ${PROXY_PWD}"/>

        <sql driver="${db.driver}"
              url="${db.url}"
              userid="${db.sys.user}"
              password="${db.sys.pwd}"
              print="true"
              onerror="continue"
              expandProperties="true">
            <classpath>
               <pathelement location="${jdbc.driver.jar}"/>
            </classpath>
DROP USER ${PROXY_USER} CASCADE;
DROP USER ${PROXY_USER2} CASCADE;

CREATE USER ${PROXY_USER} IDENTIFIED BY ${PROXY_PWD} ACCOUNT UNLOCK;
CREATE USER ${PROXY_USER2} IDENTIFIED BY ${PROXY_PWD2} ACCOUNT UNLOCK;
REM "The following 2 lines are required for Oracle DB version 12.1"
GRANT UNLIMITED TABLESPACE TO ${PROXY_USER};
GRANT UNLIMITED TABLESPACE TO ${PROXY_USER2};
GRANT CONNECT TO ${PROXY_USER};
GRANT CONNECT TO ${PROXY_USER2};
GRANT RESOURCE TO ${PROXY_USER};
GRANT CREATE SESSION TO ${PROXY_USER};
ALTER USER ${PROXY_USER} GRANT CONNECT THROUGH ${DB_USER};
ALTER USER ${PROXY_USER2} GRANT CONNECT THROUGH ${DB_USER};
        </sql>

        <sql driver="${db.driver}"
              url="${db.url}"
              userid="${DB_USER}"
              password="${DB_PWD}"
              print="true"
              onerror="continue"
              expandProperties="true">
            <classpath>
               <pathelement location="${jdbc.driver.jar}"/>
            </classpath>
CREATE TABLE JPA_PROXY_EMPLOYEE (EMP_ID NUMBER(15) NOT NULL, F_NAME VARCHAR2(40) NULL, L_NAME VARCHAR2(40) NULL, PRIMARY KEY (EMP_ID));
CREATE TABLE PROXY_EMPLOYEE_SEQ (SEQ_NAME VARCHAR2(50) NOT NULL, SEQ_COUNT NUMBER(38) NULL, PRIMARY KEY (SEQ_NAME));
INSERT INTO PROXY_EMPLOYEE_SEQ(SEQ_NAME, SEQ_COUNT) values ('PROXY_EMPLOYEE_SEQ', 1);
        </sql>

        <sql driver="${db.driver}"
              url="${db.url}"
              userid="${PROXY_USER}"
              password="${PROXY_PWD}"
              print="true"
              onerror="continue"
              expandProperties="true">
            <classpath>
               <pathelement location="${jdbc.driver.jar}"/>
            </classpath>
CREATE TABLE PROXY_PHONENUMBER (OWNER_ID NUMBER(15) NOT NULL, TYPE VARCHAR2(15) NOT NULL, AREA_CODE VARCHAR2(3) NULL, NUMB VARCHAR2(8) NULL, PRIMARY KEY (OWNER_ID, TYPE));
        </sql>

        <sql driver="${db.driver}"
              url="${db.url}"
              userid="${db.sys.user}"
              password="${db.sys.pwd}"
              print="true"
              onerror="continue"
              autocommit="true"
              expandProperties="true">
            <classpath>
               <pathelement location="${jdbc.driver.jar}"/>
            </classpath>
GRANT ALTER ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};
GRANT DELETE ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};
GRANT INSERT ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};
GRANT SELECT ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};
GRANT UPDATE ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};
GRANT INDEX ON ${DB_USER}.JPA_PROXY_EMPLOYEE TO ${PROXY_USER};

GRANT ALTER ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
GRANT DELETE ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
GRANT INSERT ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
GRANT SELECT ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
GRANT UPDATE ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
GRANT INDEX ON ${DB_USER}.PROXY_EMPLOYEE_SEQ TO ${PROXY_USER};
         </sql>
    </target>
</project>
