Deploying the Scheduling Assistant - Bedework

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 Bedework instance.

Prerequisites

You'll need the following before you begin:

  • Bedework 3.8 Preview Release or later
  • Administrative credentials for your Bedework instance
  • 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.

The Scheduling Assistant needs super user credentials for your Bedework instance in order to create and manipulate appointments on behalf of the participants. The 'admin' user in the quickstart meets these requirements, you may wish to create a separate account for use by the Scheduling Assistant.

Creating the war overlay project

Maven's war plugin allows you to create an "overlay" of another maven war project. In short, this feature allows you to import another project and lay your own changes over the top.
You can find more information about maven war overlays at: https://maven.apache.org/plugins/maven-war-plugin/overlays.html

  1. Download the sample overlay project at https://mywebspace.wisc.edu/npblair/jasig/my-sched-assist-war-1.1.0-SNAPSHOT.zip and unzip on your filesystem.
  2. The released versions of the Scheduling Assistant come pre-configured to talk to a Bedework instance. All you need to provide is a properties file that contains the hostnames, ports, usernames and passwords to integrate with your environment. Directly under your my-sched-assist-war directory, open the file with the path:

    src/main/resources/scheduling-assistant.properties
    
  3. Edit the properties according to the comments. It is critical that you change the values of the ws.username and ws.password properties from the default to avoid being vulnerable to untrusted web service requests.
  4. Once the properties file matches your environment, save the file.
  5. You should also edit 'src/main/webapp/META-INF/context.xml' to match the JDBC credentials for the database; by default this file contains the credentials for the HSQL database that can be started from the Scheduling Assistant source.
  6. Execute the following command from the root of your my-sched-assist-war directory:

    mvn package
    
  7. This will download the version of the Scheduling Assistant specified in the pom.xml and add your configuration. The result will be a war file named 'my-scheduling-assistant.war' in the target sub-directory.

Copy this war file to the webapps directory of your Tomcat 6 instance.

You can optionally change the name of the war and a few other properties by editing the project's POM:

  • Open the pom.xml in the my-sched-assist-war directory. You can free to change the following properties as you see fit:
    • artifactId
    • groupId
    • name, description
    • scheduling.assistant.version (under the properties section)
    • finalName (under the build section)

Creating an overlay of the portlet

You can't deploy the portlet without having an instance of the Scheduling Assistant running, so be sure to follow the 'Creating the war overlay project' steps first.

  1. Download the sample portlet overlay project at https://mywebspace.wisc.edu/npblair/jasig/my-sched-assist-portlet-1.1.0-SNAPSHOT.zip and unzip on your filesystem.
  2. Directly under your my-sched-assist-portlet directory, open the file with the path:

    src/main/resources/scheduling-assistant.properties
    
  3. Edit the properties to match your Scheduling Assistant instance. Note that the portlet doesn't interact with your Bedework instance, database, or LDAP; it communicates completely through the Scheduling Assistant web services endpoint.
  4. Execute the following command from the root of your my-sched-assist-portlet directory:

    mvn package
    
  5. This will download the version of the Scheduling Assistant portlet specified in the pom.xml and add your configuration. The result will be a war file named 'my-scheduling-assistant.war' in the target sub-directory.

This war file can be published to a JSR-168 Portlet Container (like uPortal).