<?xml version="1.0" encoding="UTF-8" ?>
<project name="ojvm-restlet" default="all" basedir=".">
  <property name="env" environment="env" value="env"/>
  <property name="ORACLE_HOME" value="${env.ORACLE_HOME}"/>

  <!-- Location properties -->
  <property name="dist-base" value="../../.." />

  <property file="${dist-base}/src/build.properties"/>

   <!-- Database properties -->
   <property file="${user.home}/build.properties"/>

   <import file="loadjava.xml"/>

   <!-- Library properties -->
   <property file="${dist-base}/src/libraries.properties" />

   <!-- Module properties -->
   <property file="${dist-base}/src/modules.properties" />

   <target name="create-schema"
          description="Create a DB schema to hold Restlet implementation and demos">
    <exec executable="${ORACLE_HOME}/bin/sqlplus" dir="sql">
      <arg value="${jdbc.sysusr}/${jdbc.syspwd}@${sqlnet.string} as sysdba"/>
      <arg value="@preInstall"/>
      <arg value="${jdbc.username}"/>
      <arg value="${jdbc.password}"/>
    </exec>
   </target>


  <target name="load-required-libs"
          description="Load Restlet required libs">
    <loadjava-with-public-synonym login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-core-id}.jar"
	      failonerror="no"/>
    <echo message="Ignore some resolvers errors due are not used classes"/>
    <loadjava-with-public-synonym login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-xml-id}.jar"/>
    <loadjava-with-public-synonym login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-servlet-id}.jar"/>
  </target>

  <target name="load-server-side-runtime"
          description="Load XDB restlet adapter">
    <loadjava-with-public-synonym login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-xdb-id}.jar"/>
  </target>

  <target name="load-server-side-demos"
          description="Load restlet examples and tutorial">
    <!--loadjava-with-public-synonym login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-core-example-id}.jar"
              failonerror="no"/-->
    <echo message="Load using loadjava -r -v -s -g public -u ${jdbc.username}/${jdbc.password}@${sqlnet.string} ..."/>
    <echo message="org/restlet/example/tutorial/Part10.java"/>
    <echo message="org/restlet/example/tutorial/UserResource.java"/>
    <echo message="org/restlet/example/tutorial/OrderResource.java"/>
    <echo message="org/restlet/example/tutorial/OrdersResource.java"/>
    <echo message="org/restlet/example/tutorial/Part12.java"/>
    <exec executable="${ORACLE_HOME}/bin/sqlplus" dir="sql">
      <arg value="${jdbc.sysusr}/${jdbc.syspwd}@${sqlnet.string} as sysdba"/>
      <arg value="@postInstall"/>
      <arg value="${jdbc.username}"/>
    </exec>
  </target>

  <target name="test-callout"
          description="Create a PLSQL call spec for some client API examples">
    <exec executable="${ORACLE_HOME}/bin/sqlplus" dir="sql">
      <arg value="${jdbc.username}/${jdbc.password}@${sqlnet.string}"/>
      <arg value="@testCallOut"/>
    </exec>
  </target>

  <target name="compile-classes"
          description="Compile classes under org.restlet and org.restlet.engine packages">
    <exec executable="${ORACLE_HOME}/bin/sqlplus" dir="sql">
      <arg value="${jdbc.username}/${jdbc.password}@${sqlnet.string}"/>
      <arg value="@compileClasses"/>
    </exec>
  </target>

  <!-- Remove Direct Invocation Server Side Entry point -->
  <target name="drop-server-side-runtime">
    <dropjava login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-example-id}.jar"/>
    <dropjava login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-xdb-id}.jar"/>
    <dropjava login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-servlet-id}.jar"/>
    <dropjava login="${jdbc.username}/${jdbc.password}@${sqlnet.string}"
              file="${dist-base}/lib/${mod-core-id}.jar"/>
  </target>
  
  <target name="all"
          depends="create-schema,load-required-libs,load-server-side-runtime,load-server-side-demos" 
          description="Performs pre and post server side installation"/>
</project>
