<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="oracle.proxy.user" value="${db.user}_PROXY"/>
    <property name="oracle.proxy.user2" value="${db.user}_PROXY2"/>
    <property name="oracle.proxy.pwd" value="password"/>
    <property name="oracle.proxy.pwd2" value="password"/>


    <target name="clean-schema">
        <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="modify-proxy-authentication-tests">
        <property name="trunk.home" value="../.."/>
        <replace dir="${trunk.home}/foundation/eclipselink.extension.oracle.test/src/org/eclipse/persistence/testing/models/jpa/proxyauthentication">
             <replacefilter token="PAS_CONN"
                 value="${db.user}" />
             <replacefilter token="PAS_PROXY"
                 value="${oracle.proxy.user}" />
        </replace>
    </target>

    <target name="setup-proxy-authentication" depends="clean-schema">
        <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 ${oracle.proxy.user} CASCADE;
DROP USER ${oracle.proxy.user2} CASCADE;
  
CREATE USER ${oracle.proxy.user} IDENTIFIED BY ${oracle.proxy.pwd} ACCOUNT UNLOCK;
CREATE USER ${oracle.proxy.user2} IDENTIFIED BY ${oracle.proxy.pwd2} ACCOUNT UNLOCK;
REM "The following 2 lines are required for Oracle DB version 12.1"
GRANT UNLIMITED TABLESPACE TO ${oracle.proxy.user};
GRANT UNLIMITED TABLESPACE TO ${oracle.proxy.user2};
GRANT CONNECT TO ${oracle.proxy.user};
GRANT CONNECT TO ${oracle.proxy.user2};
GRANT RESOURCE TO ${oracle.proxy.user};
GRANT CREATE SESSION TO ${oracle.proxy.user};
ALTER USER ${oracle.proxy.user} GRANT CONNECT THROUGH ${db.user};
ALTER USER ${oracle.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="${oracle.proxy.user}"
              password="${oracle.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 ${oracle.proxy.user};
GRANT DELETE ON ${db.user}.JPA_PROXY_EMPLOYEE TO ${oracle.proxy.user};
GRANT INSERT ON ${db.user}.JPA_PROXY_EMPLOYEE TO ${oracle.proxy.user};
GRANT SELECT ON ${db.user}.JPA_PROXY_EMPLOYEE TO ${oracle.proxy.user};
GRANT UPDATE ON ${db.user}.JPA_PROXY_EMPLOYEE TO ${oracle.proxy.user};
GRANT INDEX ON ${db.user}.JPA_PROXY_EMPLOYEE TO ${oracle.proxy.user};

GRANT ALTER ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
GRANT DELETE ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
GRANT INSERT ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
GRANT SELECT ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
GRANT UPDATE ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
GRANT INDEX ON ${db.user}.PROXY_EMPLOYEE_SEQ TO ${oracle.proxy.user};
         </sql>
    </target>
</project>