Preface
This document is intended to describe how to create a maven overlay project to build your own instance of the Scheduling Assistant configured for your Oracle Calendar instance. Additional caveats apply with the Oracle Calendar integration as it depends on the native library SDK that Oracle Calendar includes.
Prerequisites
You'll need the following before you begin:
- Knowledge of your Oracle Calendar servers and access to the native libraries
- Java Development Kit (JDK) version 6
- Apache Maven 3 https://maven.apache.org/
- Apache Ant 1.8 https://ant.apache.org/
- Apache Tomcat 6 https://tomcat.apache.org/
- A database to store Scheduling Assistant specific information (like Schedule Owner preferences and availability schedules, relationships, etc.)
At this time, the Scheduling Assistant supports HSQL and Oracle databases. The SQL used is ANSI and should work with other databases. If you wish to deploy against another database please contact the mailing list at 'sched-assist-user@lists.jasig.org' and we'll help you get running.
Get the Scheduling Assistant Oracle Calendar source
Since the Oracle Calendar integration for the Scheduling Assistant depends on a library that will never be available in public Maven repositories (as the native libraries are restricted under software licensing agreements), you must check out the Oracle Calendar specific source tree for the Scheduling Assistant and install in your local Maven repository.
- Create a workspace directory on your file system, e.g. /home/username/jasig/
- cd /home/username/jasig
- svn co https://source.jasig.org/sa/sched-assist-oraclecalendar/trunk sched-assist-oraclecalendar
- Note: You should replace 'trunk' in that url with a known release you want to work with, like 'tags/1.0.0' or 'branches/rel-1.0-patches' (not yet available).
- cd /home/username/jasig/sched-assist-oraclecalendar
- cp build-SAMPLE.properties build.properties
- Open build.properties in your favorite text editor
- Alter the 'oracle.install.home' and 'csdk.jar' to match the locations of your Oracle Calendar install root and the path to the csdk.jar
- Alter the 'java_library_path' and 'ld_library_path' to match your environment (comments in the file describe the differences between linux and solaris)
- Execute the following command to install csdk.jar in your local maven repository:
ant maven-install-oracle-csdk
- Now that the csdk jar can be found by the maven build process, install the Scheduling Assistant Oracle Calendar project in your local maven repository:
mvn package install
Prepping a Tomcat instance for Scheduling Assistant Oracle Calendar
Using the Oracle Calendar SDK native libraries in Tomcat requires additional Tomcat configuration.
- In your tomcat 6 install, execute the following:
mkdir -p shared/lib
- This new directory will contain libraries that are loaded by Tomcat's Shared Classloader. Enable the shared classloader by editing:
$CATALINA_HOME/conf/catalina.properties
- Set the value of the 'shared.loader' property to:
shared.loader=${catalina.home}/shared/lib/*.jar
- Back in the Scheduling Assistant Oracle Calendar source tree, open build.properties and edit the tomcat.home property to match your $CATALINA_HOME.
- Execute the following command to copy the correct dependencies into your Tomcat's shared/lib:
ant deploy-oracle-csdk-and-loader
Creating the war overlay project
Now that the Oracle Calendar integration is installed in your local maven repository, you can create a maven overlay project to build a version of the project configured for your environment.