← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 11048: dhis2-tools ubuntu debian package - WIP

 

Please don't try and use this yet ... I have just discovered bzr clobbers
all the correct file permissions which causes a bad deb to be created.

The only solution to this will be to have a script to "manually" fix all
the permissions after checking out from bzr.  hopefully will get that fixed
today.


On 28 May 2013 07:07, <noreply@xxxxxxxxxxxxx> wrote:

> ------------------------------------------------------------
> revno: 11048
> committer: Bob Jolliffe <bobjolliffe@xxxxxxxxx>
> branch nick: dhis2
> timestamp: Tue 2013-05-28 13:06:12 +0100
> message:
>   dhis2-tools ubuntu debian package - WIP
> added:
>   tools/dhis2-tools-deb/
>   tools/dhis2-tools-deb/.bzrignore
>   tools/dhis2-tools-deb/Makefile
>   tools/dhis2-tools-deb/assemble.sh
>   tools/dhis2-tools-deb/docs/
>   tools/dhis2-tools-deb/docs/Makefile
>   tools/dhis2-tools-deb/docs/manual.xml
>   tools/dhis2-tools-deb/install.sh
>   tools/dhis2-tools-deb/pkg/
>   tools/dhis2-tools-deb/pkg/DEBIAN/
>   tools/dhis2-tools-deb/pkg/DEBIAN/conffiles
>   tools/dhis2-tools-deb/pkg/DEBIAN/control
>   tools/dhis2-tools-deb/pkg/DEBIAN/postinst
>   tools/dhis2-tools-deb/pkg/DEBIAN/postrm
>   tools/dhis2-tools-deb/pkg/DEBIAN/preinst
>   tools/dhis2-tools-deb/pkg/etc/
>   tools/dhis2-tools-deb/pkg/etc/sudoers.d/
>   tools/dhis2-tools-deb/pkg/etc/sudoers.d/dhis2
>   tools/dhis2-tools-deb/pkg/usr/
>   tools/dhis2-tools-deb/pkg/usr/bin/
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-backup
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-create-admin
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-deploy-stable
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-instance-create
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-logview
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-nginx
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-restoredb
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-shutdown
>   tools/dhis2-tools-deb/pkg/usr/bin/dhis2-startup
>   tools/dhis2-tools-deb/pkg/usr/share/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc/copyright
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/dhis2-ssl
>
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/http-redirect
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx/dhis2
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/backups/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin/setenv.sh
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/Catalina/
>
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/catalina.properties
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/context.xml
>
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logging.properties
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logrotate.conf
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/server.xml
>
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/tomcat-users.xml
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/web.xml
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/lib/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/logs/
>   tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/webapps/
>   tools/dhis2-tools-deb/pkg/usr/share/doc/
>   tools/dhis2-tools-deb/pkg/usr/share/doc/dhis2-tools/
>   tools/dhis2-tools-deb/pkg/usr/share/doc/dhis2-tools/changelog.gz
>   tools/dhis2-tools-deb/pkg/usr/share/doc/dhis2-tools/copyright
>   tools/dhis2-tools-deb/pkg/usr/share/man/
>   tools/dhis2-tools-deb/pkg/usr/share/man/man1/
>   tools/dhis2-tools-deb/pkg/var/
>   tools/dhis2-tools-deb/pkg/var/lib/
>   tools/dhis2-tools-deb/pkg/var/lib/dhis2/
>   tools/dhis2-tools-deb/pkg/var/log/
>   tools/dhis2-tools-deb/pkg/var/log/dhis2/
> modified:
>
> dhis-2/dhis-services/dhis-service-importexport/src/main/resources/transform/gml2dxf.xsl
>
> dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/exp/ExportDataMartAction.java
>
>
> --
> lp:dhis2
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
>
> Your team DHIS 2 developers is subscribed to branch lp:dhis2.
> To unsubscribe from this branch go to
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
>
> === modified file
> 'dhis-2/dhis-services/dhis-service-importexport/src/main/resources/transform/gml2dxf.xsl'
> ---
> dhis-2/dhis-services/dhis-service-importexport/src/main/resources/transform/gml2dxf.xsl
>     2011-10-28 12:24:59 +0000
> +++
> dhis-2/dhis-services/dhis-service-importexport/src/main/resources/transform/gml2dxf.xsl
>     2013-05-28 12:06:12 +0000
> @@ -38,7 +38,7 @@
>      <id>0</id>
>      <uuid/>
>      <name><xsl:value-of select="$name"/></name>
> -    <shortName><xsl:value-of select="$name"/></shortName>
> +    <shortName><xsl:value-of select="substring($name,1,50)"/></shortName>
>      <code/>
>      <openingDate/>
>      <closedDate/>
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/exp/ExportDataMartAction.java'
> ---
> dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/exp/ExportDataMartAction.java
>      2011-12-26 10:07:59 +0000
> +++
> dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/exp/ExportDataMartAction.java
>      2013-05-28 12:06:12 +0000
> @@ -65,6 +65,9 @@
>      // TODO: experiment with different sizes for this to stop data
> dribbling out
>      private static final int GZIPBUFFER = 8192;
>
> +    // dummy figure to keep legacy mydatamart happy
> +    private static final int DUMMYCOUNT = 100000;
> +
>      private static final Log log = LogFactory.getLog(
> ExportDataMartAction.class );
>
>      private static final DateFormat dateFormat = new SimpleDateFormat(
> "yyyyMMdd" );
> @@ -233,8 +236,12 @@
>          OutputStream out = null;
>
>          // how many rows do we expect
> -        int count = exportPivotViewService.count( requestType, pType,
> start, end, dataSourceLevel, dataSourceRoot );
> -
> +        // int count = exportPivotViewService.count( requestType, pType,
> start, end, dataSourceLevel, dataSourceRoot );
> +
> +        // Turns out it is too expensive to count the size of the
> resultset on large datamarts
> +        // so we just return a dummy value here
> +        int count = DUMMYCOUNT;
> +
>          ContextUtils.configureResponse( response,
> ContextUtils.CONTENT_TYPE_GZIP, true, filename, true );
>
>          // write number of rows to custom header
>
> === added directory 'tools/dhis2-tools-deb'
> === added file 'tools/dhis2-tools-deb/.bzrignore'
> --- tools/dhis2-tools-deb/.bzrignore    1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/.bzrignore    2013-05-28 12:06:12 +0000
> @@ -0,0 +1,2 @@
> +*.deb
> +*~
>
> === added file 'tools/dhis2-tools-deb/Makefile'
> --- tools/dhis2-tools-deb/Makefile      1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/Makefile      2013-05-28 12:06:12 +0000
> @@ -0,0 +1,17 @@
> +TARGET=dhis2-tools_1.0-0ubuntu1_all.deb
> +
> +all: deb test
> +
> +deb: doc
> +       ./assemble.sh $(TARGET)
> +
> +doc:
> +       cd docs; make; cd ..
> +
> +test:
> +       lintian $(TARGET)
> +
> +clean:
> +       rm -f $(TARGET)
> +       rm -rf *~
> +       cd docs; make clean; cd ..
>
> === added file 'tools/dhis2-tools-deb/assemble.sh'
> --- tools/dhis2-tools-deb/assemble.sh   1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/assemble.sh   2013-05-28 12:06:12 +0000
> @@ -0,0 +1,10 @@
> +#!/bin/bash
> +
> +cd ./pkg
> +find . -iname  *~ -exec rm '{}' ';'
> +find . -type f ! -regex '.*.hg.*' ! -regex '.*?debian-binary.*' ! -regex
> '.*?DEBIAN.*' -printf '%P ' | xargs md5sum > DEBIAN/md5sums
> +chmod 644 DEBIAN/md5sums
> +cd ..
> +
> +fakeroot dpkg -b ./pkg $1
> +
>
> === added directory 'tools/dhis2-tools-deb/docs'
> === added file 'tools/dhis2-tools-deb/docs/Makefile'
> --- tools/dhis2-tools-deb/docs/Makefile 1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/docs/Makefile 2013-05-28 12:06:12 +0000
> @@ -0,0 +1,8 @@
> +man: manual.xml
> +       docbook2x-man manual.xml
> +       gzip -f -9  *.1
> +       cp -f *.1.gz ../pkg/usr/share/man/man1
> +       chmod 0644 ../pkg/usr/share/man/man1/*
> +
> +clean:
> +       rm -f  *.gz
>
> === added file 'tools/dhis2-tools-deb/docs/manual.xml'
> --- tools/dhis2-tools-deb/docs/manual.xml       1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/docs/manual.xml       2013-05-28 12:06:12 +0000
> @@ -0,0 +1,203 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
> +                      "http://www.docbook.org/xml/4.5/docbookx.dtd";>
> +<book>
> +  <bookinfo>
> +    <title>DHIS2 server tools manual</title>
> +    <author>
> +      <firstname>Bob</firstname>
> +      <surname>Jolliffe</surname>
> +    </author>
> +  </bookinfo>
> +
> +  <chapter>
> +    <title>Overview</title>
> +    <para>Installing and managing DHIS2.</para>
> +  </chapter>
> +
> +  <chapter>
> +    <title>DHIS2 tools</title>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-instance-create</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-instance-create</refname>
> +        <refpurpose>Creates a new dhis2 instance</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-instance-create</command>
> +          <arg choice="opt">
> +            <option>OPTIONS</option>
> +          </arg>
> +          <arg choice="plain">name</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Use this tool to create a new dhis2 instance in a tomcat
> container.</para>
> +      </refsect1>
> +      <refsect1>
> +        <title>OPTIONS</title>
> +        <variablelist>
> +          <varlistentry>
> +            <term>-p</term>
> +            <listitem><para>http port</para></listitem>
> +          </varlistentry>
> +        </variablelist>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>Create it like this</para>
> +      </refsect1>
> +    </refentry>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-startup</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-startup</refname>
> +        <refpurpose>Starts a dhis2 instance</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-startup</command>
> +          <arg choice="opt">instance name</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Start a dhis2 instance</para>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>dhis2-startup myInstance</para>
> +      </refsect1>
> +    </refentry>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-shutdown</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-shutdown</refname>
> +        <refpurpose>Stops a dhis2 instance</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-shutdown</command>
> +          <arg choice="opt">instance name</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Stop a dhis2 instance</para>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>dhis2-shutdown myInstance</para>
> +      </refsect1>
> +    </refentry>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-deploy-stable</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-deploy-stable</refname>
> +        <refpurpose>Deploys a war file</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-deploy-stable</command>
> +          <arg choice="opt">instance name</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Deploys the latest stable dhis2 war file from
> http://stable.dhis2.org.</para>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>dhis2-deploy-stable myInstance</para>
> +      </refsect1>
> +    </refentry>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-logview</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-logview</refname>
> +        <refpurpose>Shows log file</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-logview</command>
> +          <arg choice="opt">instance name</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Use this tool to view log of dhis2 instance using
> less.</para>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>dhis2-logview myInstance</para>
> +      </refsect1>
> +    </refentry>
> +
> +    <!--
> ==============================================================================
> -->
> +    <refentry>
> +      <refmeta>
> +        <refentrytitle>dhis2-create-admin</refentrytitle>
> +        <manvolnum>1</manvolnum>
> +      </refmeta>
> +      <refnamediv>
> +        <refname>dhis2-create-admin</refname>
> +        <refpurpose>Create a user for administering dhis2
> instances</refpurpose>
> +      </refnamediv>
> +
> +      <refsynopsisdiv>
> +        <cmdsynopsis>
> +          <command>/usr/bin/dhis2-create-admin</command>
> +          <arg choice="opt">username</arg>
> +        </cmdsynopsis>
> +      </refsynopsisdiv>
> +
> +      <refsect1>
> +        <title>Description</title>
> +        <para>Creates a new dhis2 admin user. If the specified user does
> not exist, she will be
> +          created on the system. Otherwise an existing user is modified.
> The dhis2 admin user will
> +          have postgres superuser privileges and wil be a member of the
> dhis2admin group. </para>
> +      </refsect1>
> +      <refsect1>
> +        <title>Examples</title>
> +        <para>Create it like this</para>
> +      </refsect1>
> +    </refentry>
> +  </chapter>
> +</book>
>
> === added file 'tools/dhis2-tools-deb/install.sh'
> --- tools/dhis2-tools-deb/install.sh    1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/install.sh    2013-05-28 12:06:12 +0000
> @@ -0,0 +1,12 @@
> +#!/bin/sh
> +# set -e
> +
> +# need to use a ppa for postgres 9.2 and nginx
> +sudo apt-get -y install python-software-properties -y
> +sudo add-apt-repository ppa:pitti/postgresql -y
> +sudo add-apt-repository ppa:nginx/stable -y
> +sudo apt-get -y update
> +
> +# install the dhis2-tools deb
> +dpkg -i dhis2-tools*
> +apt-get -y install -f
>
> === added directory 'tools/dhis2-tools-deb/pkg'
> === added directory 'tools/dhis2-tools-deb/pkg/DEBIAN'
> === added file 'tools/dhis2-tools-deb/pkg/DEBIAN/conffiles'
> --- tools/dhis2-tools-deb/pkg/DEBIAN/conffiles  1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/DEBIAN/conffiles  2013-05-28 12:06:12 +0000
> @@ -0,0 +1,1 @@
> +/etc/sudoers.d/dhis2
>
> === added file 'tools/dhis2-tools-deb/pkg/DEBIAN/control'
> --- tools/dhis2-tools-deb/pkg/DEBIAN/control    1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/DEBIAN/control    2013-05-28 12:06:12 +0000
> @@ -0,0 +1,14 @@
> +Package: dhis2-tools
> +Source: dhis2-tools
> +Version: 1.0
> +Architecture: all
> +Maintainer: DHIS2 developers <dhis2-devs@xxxxxxxxxxxxxxxxxxx>
> +Installed-Size: 236
> +Depends: openjdk-7-jdk,tomcat7-common (>=
> 7.0.26-1ubuntu1.1),netcat,nginx,ttf-liberation,libtcnative-1,makepasswd,postgresql-9.2
> +Section: java
> +Priority: optional
> +Homepage: http://launchpad.net/dhis2
> +Description: Tools for managing dhis2 on ubuntu
> + This package contains a set of tools to assist with
> + the installation and maintenance of the dhis2 (http://dhis2.org)
> + software on ubuntu server.
>
> === added file 'tools/dhis2-tools-deb/pkg/DEBIAN/postinst'
> --- tools/dhis2-tools-deb/pkg/DEBIAN/postinst   1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/DEBIAN/postinst   2013-05-28 12:06:12 +0000
> @@ -0,0 +1,12 @@
> +#!/bin/sh
> +
> +set -e
> +
> +echo "create group for dhis instances and group for dhis admins"
> +addgroup dhis2admin 2>/dev/null || { echo "dhis2admin group exists"; }
> +addgroup dhis2 2>/dev/null || { echo "dhis2 group exists"; }
> +
> +# echo "apache module setup"
> +# a2enmod rewrite headers proxy_ajp disk_cache ssl
> +
> +exit 0
>
> === added file 'tools/dhis2-tools-deb/pkg/DEBIAN/postrm'
> --- tools/dhis2-tools-deb/pkg/DEBIAN/postrm     1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/DEBIAN/postrm     2013-05-28 12:06:12 +0000
> @@ -0,0 +1,7 @@
> +#!/bin/sh
> +
> +set -e
> +
> +# remove dhis2 user groups
> +delgroup dhis2 2>dev/null || { echo "dhis2 group doesn't exist"; }
> +delgroup dhis2admin 2>/dev/null || { echo "dhis2admin group doesn't
> exist"; }
>
> === added file 'tools/dhis2-tools-deb/pkg/DEBIAN/preinst'
> --- tools/dhis2-tools-deb/pkg/DEBIAN/preinst    1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/DEBIAN/preinst    2013-05-28 12:06:12 +0000
> @@ -0,0 +1,6 @@
> +#!/bin/sh
> +set -e
> +
> +echo "Some preinstallation tasks ..."
> +
> +exit 0
>
> === added directory 'tools/dhis2-tools-deb/pkg/etc'
> === added directory 'tools/dhis2-tools-deb/pkg/etc/sudoers.d'
> === added file 'tools/dhis2-tools-deb/pkg/etc/sudoers.d/dhis2'
> --- tools/dhis2-tools-deb/pkg/etc/sudoers.d/dhis2       1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/etc/sudoers.d/dhis2       2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,10 @@
> +# sudoers file for dhis2 admins
> +Cmnd_Alias DHIS2CREATE = /usr/bin/dhis2-instance-create
> +Cmnd_Alias DHIS2PROGS = /usr/bin/dhis2-*
> +
> +Runas_Alias DHIS2USERS = %dhis2
> +
> +# Dhis2 admins can run dhis2-instance-create as root
> +%dhis2admin ALL=(root)NOPASSWD:DHIS2CREATE,/usr/sbin/useradd
> +# Dhis2 admins can run all dhis2 progs as the dhis2 instance user
> +%dhis2admin ALL=(DHIS2USERS) ALL
>
> === added directory 'tools/dhis2-tools-deb/pkg/usr'
> === added directory 'tools/dhis2-tools-deb/pkg/usr/bin'
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-backup'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-backup      1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-backup      2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,73 @@
> +#!/usr/bin/env bash
> +#########################################################
> +# postgres backup script v1.2
> +# author: Bob Jolliffe
> +# licence: public domain
> +#
> +# using some ideas from
> +# http://wiki.postgresql.org/wiki/Automated_Backup_on_Linux
> +#########################################################
> +
> +BACKUP_DIR=~/backups/
> +# REMOTE="ghbackup@178.79.143.102:./dhis"
> +USER=$USER
> +DBNAME=$USER
> +# Keep Sunday's backup
> +DAY_OF_WEEK_TO_KEEP=7
> +WEEKS_TO_KEEP=6
> +DAYS_TO_KEEP=7
> +
> +EXCLUDED="-T aggregated* -T analytics* -T completeness*"
> +
> +function perform_backups()
> +{
> +  SUFFIX=$1
> +  FINAL_BACKUP_DIR=$BACKUP_DIR/backup"`date +\%Y-\%m-\%d`$SUFFIX/"
> +
> +  if ! mkdir -p $FINAL_BACKUP_DIR; then
> +        echo "`date` Cannot create backup directory in $FINAL_BACKUP_DIR.
> Go and fix it!"
> +        exit 1;
> +  fi;
> +
> +  if ! pg_dump -O -Fp $DBNAME $EXCLUDED | gzip >
> $FINAL_BACKUP_DIR"$DBNAME".sql.gz.in_progress; then
> +      echo "`date` [!!ERROR!!] Failed to produce plain backup of database
> $DBNAME"
> +  else
> +    mv $FINAL_BACKUP_DIR"$DBNAME".sql.gz.in_progress
> $FINAL_BACKUP_DIR"$DBNAME".sql.gz
> +    # sync to remote server
> +    # rsync -avq $BACKUP_DIR $REMOTE
> +  fi
> +}
> +
> +# MONTHLY BACKUPS
> +DAY_OF_MONTH=`date +%d`
> +
> +if [ $DAY_OF_MONTH = "01" ];
> +then
> +       # Delete all expired monthly directories
> +       find $BACKUP_DIR -maxdepth 1 -name "*-monthly" -exec rm -rf '{}'
> ';'
> +
> +       perform_backups "-monthly"
> +
> +       exit 0;
> +fi
> +
> +# WEEKLY BACKUPS
> +DAY_OF_WEEK=`date +%u` #1-7 (Monday-Sunday)
> +EXPIRED_DAYS=`expr $((($WEEKS_TO_KEEP * 7) + 1))`
> +
> +if [ $DAY_OF_WEEK = $DAY_OF_WEEK_TO_KEEP ];
> +then
> +       # Delete all expired weekly directories
> +       find $BACKUP_DIR -maxdepth 1 -mtime +$EXPIRED_DAYS -name
> "*-weekly" -exec rm -rf '{}' ';'
> +
> +       perform_backups "-weekly"
> +
> +       exit 0;
> +fi
> +
> +# Delete daily backups 7 days old or more
> +find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name "*-daily" -exec
> rm -rf '{}' ';'
> +
> +perform_backups "-daily"
> +
> +
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-create-admin'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-create-admin        1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-create-admin        2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,26 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance log viewer
> +
> +if [ "$#" -ne 1 ]; then
> +  echo "usage: dhis2-create-admin <user>"
> +  exit 1
> +fi
> +
> +ADMINUSER=$1
> +
> +# if user doesn't exist, create
> +id -u $ADMINUSER >/dev/null 2>&1 || {
> +    sudo adduser $ADMINUSER
> +}
> +
> +# give user superuser access to postgres
> +sudo -u postgres dropuser $ADMINUSER 2>/dev/null || { echo "Creating new
> postgresql role"; }
> +sudo -u postgres createuser -s $ADMINUSER
> +# join the dhis2admin group
> +sudo usermod -a -G dhis2admin $ADMINUSER
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-deploy-stable'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-deploy-stable       1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-deploy-stable       2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,25 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance startup script
> +
> +set -e
> +
> +if [ "$#" -ne 1 ]; then
> +  echo "usage: dhis2-deploy-stable <instance name>"
> +  exit 1
> +fi
> +
> +INSTANCE=$1
> +DHIS2STABLE="http://stable.dhis2.org";
> +
> +dhis2-shutdown $INSTANCE 2>/dev/null || { echo $INSTANCE not running; }
> +# clean out existing webapps
> +sudo -u $INSTANCE rm -rf /var/lib/dhis2/$INSTANCE/webapps/* 1>/dev/null
> 2>&1 || { echo "No $INSTANCE webapps"; exit 1; }
> +# get the latest stable dhis.war
> +sudo -u $INSTANCE wget -O /var/lib/dhis2/$INSTANCE/webapps/$INSTANCE.war
> $DHIS2STABLE
> +dhis2-startup $INSTANCE
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-instance-create'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-instance-create     1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-instance-create     2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,167 @@
> +#!/bin/bash
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   Script to deploy a dhis2 instance
> +
> +set -e
> +
> +#############################################################
> +# the user who is running the deploy script
> +# should be in dhis2admin group
> +
> +if [[ "$(groups $USER)" =~ dhis2admin ]]
> +then
> +  echo "Good. User is in dhis2admin group"
> +else
> +  echo "$USER is not in dhis2admin group.  You must be in the dhis2admin
> group to deploy a new instance"
> +  exit 1
> +fi
> +##############################################################
> +# variables and default values
> +DHIS2BASEDIR=/var/lib/dhis2
> +DHIS2SKEL=/usr/share/dhis2-tools/skel
> +
> +PROG=`basename $0`
> +HTTPPORT=8080
> +CREATEDB=true
> +###############################################################
> +usage() {
> +  echo "Usage: $PROG [options] <instance>"
> +  echo "  instance: name of the dhis2 instance to create"
> +  echo "Options:"
> +  echo "  -h, --help       Display this help message"
> +  echo "  -n               Do NOT create database for instance"
> +  echo "  -p httpport      HTTP port to be used by Tomcat (default is
> $HTTPPORT)"
> +}
> +
> +###############################################################
> +checkport() {
> +  type=$1
> +  port=$2
> +  echo "Checking $type port $port"
> +  # Fail if port is non-numeric
> +  num=`expr ${port} + 1 2> /dev/null`
> +  if [ $? != 0 ] || [ $num -lt 2 ]; then
> +    echo "Error: ${type} port '${port}' is not a valid TCP port number."
> +    exit 1
> +  fi
> +
> +  # Fail if port is above 65535
> +  if [ ${port} -gt 65535 ]; then
> +    echo "Error: ${type} port ${port} is above TCP port numbers (>
> 65535)."
> +    exit 1
> +  fi
> +
> +  # Fail if port is below 1024
> +  if [ ${port} -lt 1024 ]; then
> +    echo "Error: ports below 1024 are reserved to the super-user."
> +    exit 1
> +  fi
> +
> +  # Fail if port appears to be in use
> +  if nc localhost "${port}" -z > /dev/null; then
> +    echo "Error: ${type} port ${port} appears to be in use."
> +    exit 1
> +  fi
> +}
> +###############################################################
> +
> +# main entry point
> +echo checking options
> +while getopts p:nh opt
> +do
> +  case $opt in
> +    p) HTTPPORT=$OPTARG ;;
> +    n) CREATEDB=false ;;
> +    h) usage;;
> +    *) echo "Error: Unknown parameter '$OPTARG'."
> +        exit 1;;
> +  esac
> +done
> +
> +shift $(($OPTIND - 1))
> +
> +if [ "$#" -lt 1 ]; then
> +  usage
> +  exit 1
> +fi
> +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
> +  usage
> +  exit 0
> +fi
> +
> +
> +TARGET=$1
> +# TODO: parameterize database name
> +DBNAME=$TARGET
> +DHIS2HOME=$DHIS2BASEDIR/$TARGET
> +
> +# Fail if no target specified
> +if [ -z "${TARGET}" ]; then
> +  echo "Error: No Dhis2 instance name specified"
> +  exit 1
> +fi
> +echo "You are about to create a Dhis2 instance called '$TARGET'"
> +
> +###############################################################
> +
> +#  perform some checks before doing anything
> +
> +id -u $TARGET >/dev/null 2>&1 && { echo "User $TARGET already exists";
> exit 1; }
> +checkport HTTP "$HTTPPORT"
> +if $CREATEDB; then
> +  sudo -u postgres psql $DBNAME -c '\q' >/dev/null 2>&1 && { echo
> "Database $DBNAME exists"; exit 1; }
> +fi
> +###############################################################
> +
> +#  Right, we should be good to go ...
> +
> +# create the system user
> +sudo useradd -m -s /bin/bash -b $DHIS2BASEDIR -c "$TARGET dhis2 instance"
> -g dhis2 -k $DHIS2SKEL $TARGET
> +# create the database user with a strong password
> +PASSWORD=$(makepasswd --chars=10)
> +sudo -u postgres psql -c "CREATE ROLE $TARGET PASSWORD '$PASSWORD'
> NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN;"
> +
> +if $CREATEDB; then
> +  # Create the database
> +  sudo -u postgres psql -c  "CREATE DATABASE $DBNAME OWNER $TARGET
> ENCODING 'UTF-8' TEMPLATE template0;"
> +  sudo -u postgres psql -c  "GRANT ALL ON DATABASE $DBNAME TO $TARGET;"
> +fi
> +
> +sudo -u $TARGET sh -c "cat > $DHIS2HOME/hibernate.properties" << EOT
> +hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
> +hibernate.connection.driver_class = org.postgresql.Driver
> +hibernate.connection.url = jdbc:postgresql://localhost:5432/$DBNAME
> +hibernate.connection.username = $TARGET
> +hibernate.connection.password = $PASSWORD
> +hibernate.hbm2ddl.auto = update
> +EOT
> +
> +sudo -u $TARGET chmod 0600  $DHIS2HOME/hibernate.properties
> +sudo -u $TARGET sed -i s/HTTPPORT/$HTTPPORT/ $DHIS2HOME/conf/server.xml
> +
> +sudo -u $TARGET sh -c "cat > $DHIS2HOME/logrotate.conf" << EOT
> +$DHIS2HOME/logs/catalina.out {
> +   rotate 24
> +   dateext
> +   monthly
> +   create
> +   compress
> +   copytruncate
> +   noolddir
> +}
> +EOT
> +
> +###############################################################
> +
> +# setup user crontab
> +
> +sudo -u $TARGET sh -c "crontab -u $TARGET -" << EOT
> +@reboot /usr/bin/dhis2-startup $TARGET
> +20 19 * * * /usr/bin/dhis2_backup $TARGET
> +21 00 * * * /usr/sbin/logrotate -s $DHIS2HOME/logrotate.status
> $DHIS2HOME/logrotate.conf
> +EOT
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-logview'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-logview     1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-logview     2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,17 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance log viewer
> +
> +if [ "$#" -ne 1 ]; then
> +  echo "usage: dhis2-logview <instance name>"
> +  exit 1
> +fi
> +
> +INSTANCE=$1
> +
> +sudo -u $INSTANCE less /var/lib/dhis2/$INSTANCE/logs/catalina.out
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-nginx'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-nginx       1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-nginx       2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,25 @@
> +#!/bin/bash
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance startup script
> +
> +if [ "$#" -lt 1 ]; then
> +  echo "No conf file specifiied - using default"
> +  CONFFILE=/usr/share/dhis2-tools/samples/nginx/dhis2
> +else
> +  CONFFILE=$1
> +fi
> +
> +BASE=$(basename $CONFFILE)
> +
> +# nginx setup
> +echo "setting up nginx with $CONFFILE"
> +[[ -e /etc/nginx/sites-available/$BASE ]] && { echo
> "/etc/nginx/sites-available/$BASE already exists"; exit 1; }
> +cp $CONFFILE /etc/nginx/sites-available
> +unlink /etc/nginx/sites-enabled/* || { echo "no nginx sites configured"; }
> +ln -s /etc/nginx/sites-available/$BASE /etc/nginx/sites-enabled/$BASE
> +/etc/init.d/nginx restart
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-restoredb'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-restoredb   1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-restoredb   2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,34 @@
> +#!/bin/bash
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   Script to restore a database dump
> +
> +set -e
> +
> +if [ "$#" -ne 2 ]; then
> +  echo "usage: dhis2-restoredb <instance name> <dbdump>"
> +  exit 1
> +fi
> +
> +DHIS2_USER=$INSTANCE
> +DHIS2_DB=$INSTANCE
> +DHIS2_BASE=/var/lib/dhis2/$DHIS2_USER
> +BACKUP=$DHIS2_BASE/backup/snapshot_$(date +%Y%m%d%M%S).sql.bz2
> +
> +# stop tomcat and take a snapshot backup of the current database before
> doing anything
> +dhis2-shutdown $INSTANCE
> +sudo -u postgres pg_dump -O $INSTANCE | bzip2 > $BACKUP
> +
> +# drop and recreate a new blank database
> +sudo -u postgres dropdb $DHIS2_DB
> +sudo -u postgres createdb -O $DHIS2_USER $DHIS2_DB
> +
> +# restore the backup into the new database
> +cat $2 | sudo -u postgres psql $DHIS2_DB
> +
> +# restart tomcat
> +dhis2-startup $INSTANCE
> \ No newline at end of file
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-shutdown'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-shutdown    1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-shutdown    2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,18 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance startup script
> +
> +if [ "$#" -ne 1 ]; then
> +  echo "usage: dhis2-shutdown <instance name>"
> +  exit 1
> +fi
> +
> +INSTANCE=$1
> +PID=$(cat /var/lib/dhis2/$INSTANCE/tomcat.pid)
> +echo "Shutting down dhis2 instance"
> +sudo -u $INSTANCE kill $PID || sudo -u $INSTANCE rm $PID
>
> === added file 'tools/dhis2-tools-deb/pkg/usr/bin/dhis2-startup'
> --- tools/dhis2-tools-deb/pkg/usr/bin/dhis2-startup     1970-01-01
> 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/bin/dhis2-startup     2013-05-28
> 12:06:12 +0000
> @@ -0,0 +1,18 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +#   DHIS2 instance startup script
> +
> +if [ "$#" -ne 1 ]; then
> +  echo "usage: dhis2-startup <instance name>"
> +  exit 1
> +fi
> +
> +INSTANCE=$1
> +
> +sudo -u $INSTANCE CATALINA_BASE=/var/lib/dhis2/$INSTANCE
> /usr/share/tomcat7/bin/startup.sh
> +echo "DHIS2 instance starting for $INSTANCE"
> \ No newline at end of file
>
> === added directory 'tools/dhis2-tools-deb/pkg/usr/share'
> === added directory 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools'
> === added directory 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc'
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc/copyright'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc/copyright
> 1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/doc/copyright
> 2013-05-28 12:06:12 +0000
> @@ -0,0 +1,24 @@
> +Copyright (c) 2004-2007, University of Oslo
> +All rights reserved.
> +
> +Redistribution and use in source and binary forms, with or without
> +modification, are permitted provided that the following conditions are
> met:
> +* Redistributions of source code must retain the above copyright notice,
> this
> +  list of conditions and the following disclaimer.
> +* Redistributions in binary form must reproduce the above copyright
> notice,
> +  this list of conditions and the following disclaimer in the
> documentation
> +  and/or other materials provided with the distribution.
> +* Neither the name of the HISP project nor the names of its contributors
> may
> +  be used to endorse or promote products derived from this software
> without
> +  specific prior written permission.
> +
> +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
> IS" AND
> +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> IMPLIED
> +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> LIABLE FOR
> +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> DAMAGES
> +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> SERVICES;
> +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
> AND ON
> +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> THIS
> +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples'
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2'
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/dhis2-ssl'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/dhis2-ssl
> 1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/dhis2-ssl
> 2013-05-28 12:06:12 +0000
> @@ -0,0 +1,78 @@
> +<IfModule mod_ssl.c>
> +  <VirtualHost _default_:443>
> +
> +       #===========================================================
> +        # tomcat backends
> +       #===========================================================
> +       # ProxyPass /DHISMAIN ajp://localhost:DHISMAINPORT/DHISMAIN
> +
> +       #===========================================================
> +        # try and cache whatever we can
> +       #===========================================================
> +       CacheEnable disk /
> +
> +       #===========================================================
> +       # Rewrite requests for / to main dhis application
> +       #===========================================================
> +        RewriteEngine on
> +        # RewriteRule   ^/$  /DHISMAIN/  [R]
> +
> +       #===========================================================
> +        # Logging
> +       #===========================================================
> +       ErrorLog /var/log/apache2/error.log
> +       LogLevel warn
> +       CustomLog /var/log/apache2/ssl_access.log combined
> +
> +       #===========================================================
> +       # standard web server document root for serving content
> +       # outside of dhis2 webapp
> +       #===========================================================
> +       DocumentRoot /var/www
> +       <Directory />
> +               Options FollowSymLinks
> +               AllowOverride None
> +       </Directory>
> +       <Directory /var/www/>
> +               Options Indexes FollowSymLinks MultiViews
> +               AllowOverride None
> +               Order allow,deny
> +               allow from all
> +       </Directory>
> +
> +       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
> +       <Directory "/usr/lib/cgi-bin">
> +               AllowOverride None
> +               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
> +               Order allow,deny
> +               Allow from all
> +       </Directory>
> +
> +       #===========================================================
> +       # SSL configuration
> +       #===========================================================
> +       SSLEngine on
> +
> +       # set these to match your server certificate and key
> +       SSLCertificateFile    /etc/ssl/certs/server.cer
> +       SSLCertificateKeyFile /etc/ssl/private/server.key
> +        # some CA's might also provide you with a CA cert to install
> +       # SSLCACertificateFile /etc/ssl/certs/EV_CA_Bundle.pem
> +
> +       SSLProtocol all
> +       SSLCipherSuite HIGH:MEDIUM
> +
> +       <FilesMatch "\.(cgi|shtml|phtml|php)$">
> +               SSLOptions +StdEnvVars
> +       </FilesMatch>
> +       <Directory /usr/lib/cgi-bin>
> +               SSLOptions +StdEnvVars
> +       </Directory>
> +
> +       BrowserMatch "MSIE [2-6]" \
> +               nokeepalive ssl-unclean-shutdown \
> +               downgrade-1.0 force-response-1.0
> +       BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
> +
> +  </VirtualHost>
> +</IfModule>
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/http-redirect'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/http-redirect
>       1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/apache2/http-redirect
>       2013-05-28 12:06:12 +0000
> @@ -0,0 +1,5 @@
> +<VirtualHost *:80>
> +       ServerAdmin webmaster@localhost
> +        ServerName SERVERNAME
> +        Redirect permanent / https://SERVERNAME/
> +</VirtualHost>
>
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx'
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx/dhis2'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx/dhis2
> 1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/samples/nginx/dhis2
> 2013-05-28 12:06:12 +0000
> @@ -0,0 +1,38 @@
> +# apply these settings to all backends
> +proxy_cache_path  /var/cache/nginx  keys_zone=dhis:250m  inactive=1d;
> +proxy_redirect    off;
> +proxy_set_header  Host               $host;
> +proxy_set_header  X-Real-IP          $remote_addr;
> +proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
> +proxy_set_header  X-Forwarded-Proto  https;
> +proxy_cache       dhis;
> +
> +# redirect http to https server
> +server {
> +  listen     80;
> +  rewrite    ^ https://$host$request_uri? permanent;
> +}
> +
> +# HTTPS server
> +server {
> +  listen               443;
> +  client_max_body_size 10M;
> +
> +  # ssl stuff
> +  ssl                  on;
> +  ssl_certificate      /etc/ssl/certs/ssl-cert-snakeoil.pem;
> +  ssl_certificate_key  /etc/ssl/private/ssl-cert-snakeoil.key;
> +  ssl_session_timeout  30m;
> +
> +  ssl_protocols              SSLv2 SSLv3 TLSv1;
> +  ssl_ciphers                HIGH:!aNULL:!MD5;
> +  ssl_prefer_server_ciphers  on;
> +
> +  # nominate a backend as the default
> +  rewrite ^/$ /dhis/;
> +
> +  # Proxy pass to servlet containers
> +  location /dhis { proxy_pass  http://localhost:8080/dhis; }
> +  location /training { proxy_pass  http://localhost:8081/training; }
> +  location /demo { proxy_pass  http://localhost:8082/demo; }
> +}
>
> === added directory 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel'
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/backups'
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin'
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin/setenv.sh'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin/setenv.sh
>  1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/bin/setenv.sh
>  2013-05-28 12:06:12 +0000
> @@ -0,0 +1,32 @@
> +#!/bin/sh
> +#       ____  __  ______________
> +#      / __ \/ / / /  _/ ___/__ \
> +#     / / / / /_/ // / \__ \__/ /
> +#    / /_/ / __  // / ___/ / __/
> +#   /_____/_/ /_/___//____/____/
> +#
> +# Environment variables used by tomcat
> +#
> +
> +# Virtual machine tuning
> +# Set heap size according to your available memory.
> +# In most cases this will be all you need to set (be sure
> +# you have allocated plenty for postgres).
> +
> +HEAP=2G
> +
> +# venture below here only if you know what you are doing ....
> +
> +# sets basic memory size parameters
> +export CATALINA_OPTS="-Xms$HEAP -Xmx$HEAP -XX:MaxPermSize=256m -Xss256m"
> +
> +# some best practice suggestions from
> https://gist.github.com/terrancesnyder/986029
> +export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParallelGC"
> +export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxGCPauseMillis=1500"
> +export CATALINA_OPTS="$CATALINA_OPTS -XX:GCTimeRatio=9"
> +export CATALINA_OPTS="$CATALINA_OPTS -server"
> +
> +# You can generally leave these untouched
> +export CATALINA_PID=$CATALINA_BASE/tomcat.pid
> +export CATALINA_HOME=/usr/share/tomcat7
> +export DHIS2_HOME=$CATALINA_BASE
>
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf'
> === added directory
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/Catalina'
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/catalina.properties'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/catalina.properties
>       1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/catalina.properties
>       2013-05-28 12:06:12 +0000
> @@ -0,0 +1,81 @@
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.
> +# The ASF licenses this file to You under the Apache License, Version 2.0
> +# (the "License"); you may not use this file except in compliance with
> +# the License.  You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +
> +#
> +# List of comma-separated packages that start with or equal this string
> +# will cause a security exception to be thrown when
> +# passed to checkPackageAccess unless the
> +# corresponding RuntimePermission ("accessClassInPackage."+package) has
> +# been granted.
>
> +package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
> +#
> +# List of comma-separated packages that start with or equal this string
> +# will cause a security exception to be thrown when
> +# passed to checkPackageDefinition unless the
> +# corresponding RuntimePermission ("defineClassInPackage."+package) has
> +# been granted.
> +#
> +# by default, no packages are restricted for definition, and none of
> +# the class loaders supplied with the JDK call checkPackageDefinition.
> +#
>
> +package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
> +
> +#
> +#
> +# List of comma-separated paths defining the contents of the "common"
> +# classloader. Prefixes should be used to define what is the repository
> type.
> +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or
> absolute.
> +# If left as blank,the JVM system loader will be used as Catalina's
> "common"
> +# loader.
> +# Examples:
> +#     "foo": Add this folder as a class repository
> +#     "foo/*.jar": Add all the JARs of the specified folder as class
> +#                  repositories
> +#     "foo/bar.jar": Add bar.jar as a class repository
>
> +common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
> +
> +#
> +# List of comma-separated paths defining the contents of the "server"
> +# classloader. Prefixes should be used to define what is the repository
> type.
> +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or
> absolute.
> +# If left as blank, the "common" loader will be used as Catalina's
> "server"
> +# loader.
> +# Examples:
> +#     "foo": Add this folder as a class repository
> +#     "foo/*.jar": Add all the JARs of the specified folder as class
> +#                  repositories
> +#     "foo/bar.jar": Add bar.jar as a class repository
>
> +server.loader=${catalina.home}/server/classes,${catalina.home}/server/*.jar
> +
> +#
> +# List of comma-separated paths defining the contents of the "shared"
> +# classloader. Prefixes should be used to define what is the repository
> type.
> +# Path may be relative to the CATALINA_BASE path or absolute. If left as
> blank,
> +# the "common" loader will be used as Catalina's "shared" loader.
> +# Examples:
> +#     "foo": Add this folder as a class repository
> +#     "foo/*.jar": Add all the JARs of the specified folder as class
> +#                  repositories
> +#     "foo/bar.jar": Add bar.jar as a class repository
> +# Please note that for single jars, e.g. bar.jar, you need the URL form
> +# starting with file:.
>
> +shared.loader=${catalina.home}/shared/classes,${catalina.home}/shared/*.jar
> +
> +#
> +# String cache configuration.
> +tomcat.util.buf.StringCache.byte.enabled=true
> +#tomcat.util.buf.StringCache.char.enabled=true
> +#tomcat.util.buf.StringCache.trainThreshold=500000
> +#tomcat.util.buf.StringCache.cacheSize=5000
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/context.xml'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/context.xml
>       1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/context.xml
>       2013-05-28 12:06:12 +0000
> @@ -0,0 +1,38 @@
> +<?xml version='1.0' encoding='utf-8'?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one or more
> +  contributor license agreements.  See the NOTICE file distributed with
> +  this work for additional information regarding copyright ownership.
> +  The ASF licenses this file to You under the Apache License, Version 2.0
> +  (the "License"); you may not use this file except in compliance with
> +  the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing, software
> +  distributed under the License is distributed on an "AS IS" BASIS,
> +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +  See the License for the specific language governing permissions and
> +  limitations under the License.
> +-->
> +<!-- The contents of this file will be loaded for each web application -->
> +<Context>
> +
> +    <!-- Default set of monitored resources -->
> +    <WatchedResource>WEB-INF/web.xml</WatchedResource>
> +
> +    <!-- Uncomment this to disable session persistence across Tomcat
> restarts -->
> +    <!--
> +    <Manager pathname="" />
> +    -->
> +
> +    <!-- Uncomment this to enable Comet connection tacking (provides
> events
> +         on session expiration as well as webapp lifecycle) -->
> +    <!--
> +    <Valve
> className="org.apache.catalina.valves.CometConnectionManagerValve" />
> +    -->
> +   <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
> +       virtualClasspath="${catalina.base}/routes/*.jar"
> +       searchVirtualFirst="true"/>
> +
> +</Context>
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logging.properties'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logging.properties
>        1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logging.properties
>        2013-05-28 12:06:12 +0000
> @@ -0,0 +1,41 @@
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.
> +# The ASF licenses this file to You under the Apache License, Version 2.0
> +# (the "License"); you may not use this file except in compliance with
> +# the License.  You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +
> +handlers = java.util.logging.ConsoleHandler
> +
> +.handlers = java.util.logging.ConsoleHandler
> +
> +############################################################
> +# Handler specific properties.
> +# Describes specific configuration info for Handlers.
> +############################################################
> +
> +java.util.logging.ConsoleHandler.level = FINE
> +java.util.logging.ConsoleHandler.formatter =
> java.util.logging.SimpleFormatter
> +
> +############################################################
> +# Facility specific properties.
> +# Provides extra control for each logger.
> +############################################################
> +
> +
> +# For example, set the com.xyz.foo logger to only log SEVERE
> +# messages:
> +#org.apache.catalina.startup.ContextConfig.level = FINE
> +#org.apache.catalina.startup.HostConfig.level = FINE
> +#org.apache.catalina.session.ManagerBase.level = FINE
> +#org.apache.catalina.core.AprLifecycleListener.level=FINE
> +
> +org.apache.catalina.filters.ExpiresFilter.level = FINE
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logrotate.conf'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logrotate.conf
>  1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/logrotate.conf
>  2013-05-28 12:06:12 +0000
> @@ -0,0 +1,10 @@
> +~/logs/catalina.out {
> +   rotate 24
> +   dateext
> +   monthly
> +   create
> +   compress
> +   copytruncate
> +   noolddir
> +}
> +
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/server.xml'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/server.xml
>      1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/server.xml
>      2013-05-28 12:06:12 +0000
> @@ -0,0 +1,25 @@
> +<?xml version="1.0" encoding="utf-8"?>
> +
> +<Server port="-1" >
> +
> +  <Listener
> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
> +  <Listener className="org.apache.catalina.core.JasperListener" />
> +  <Listener
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
> +  <Listener
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
> +
> +  <Service name="Catalina">
> +
> +    <Executor name="tomcatThreadPool" namePrefix="tomcat-http-"
> +           maxThreads="100" minSpareThreads="10" />
> +
> +    <Connector port="HTTPPORT" protocol="HTTP/1.1"
> +           executor="tomcatThreadPool" connectionTimeout="20000" />
> +
> +    <Engine name="Catalina" defaultHost="localhost">
> +      <Host name="localhost"  appBase="webapps"
> +            unpackWARs="true" autoDeploy="false"
> +            xmlValidation="false" xmlNamespaceAware="false">
> +      </Host>
> +    </Engine>
> +  </Service>
> +</Server>
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/tomcat-users.xml'
> ---
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/tomcat-users.xml
>  1970-01-01 00:00:00 +0000
> +++
> tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/tomcat-users.xml
>  2013-05-28 12:06:12 +0000
> @@ -0,0 +1,26 @@
> +<?xml version='1.0' encoding='utf-8'?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one or more
> +  contributor license agreements.  See the NOTICE file distributed with
> +  this work for additional information regarding copyright ownership.
> +  The ASF licenses this file to You under the Apache License, Version 2.0
> +  (the "License"); you may not use this file except in compliance with
> +  the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing, software
> +  distributed under the License is distributed on an "AS IS" BASIS,
> +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +  See the License for the specific language governing permissions and
> +  limitations under the License.
> +-->
> +<tomcat-users>
> +<!--
> +  <role rolename="tomcat"/>
> +  <role rolename="role1"/>
> +  <user username="tomcat" password="tomcat" roles="tomcat"/>
> +  <user username="both" password="tomcat" roles="tomcat,role1"/>
> +  <user username="role1" password="tomcat" roles="role1"/>
> +-->
> +</tomcat-users>
>
> === added file
> 'tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/web.xml'
> --- tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/web.xml
> 1970-01-01 00:00:00 +0000
> +++ tools/dhis2-tools-deb/pkg/usr/share/dhis2-tools/skel/conf/web.xml
> 2013-05-28 12:06:12 +0000
> @@ -0,0 +1,1275 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one or more
> +  contributor license agreements.  See the NOTICE file distributed with
> +  this work for additional information regarding copyright ownership.
> +  The ASF licenses this file to You under the Apache License, Version 2.0
> +  (the "License"); you may not use this file except in compliance with
> +  the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing, software
> +  distributed under the License is distributed on an "AS IS" BASIS,
> +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +  See the License for the specific language governing permissions and
> +  limitations under the License.
> +-->
> +<web-app xmlns="http://java.sun.com/xml/ns/javaee";
> +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> +    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";
> +    version="2.5">
> +
> +  <filter>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
> +    <init-param>
> +      <param-name>ExpiresDefault</param-name>
> +      <param-value>access plus 1 week</param-value>
> +    </init-param>
> +  </filter>
> +  <filter>
> +    <filter-name>ImageExpiresFilter</filter-name>
> +    <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
> +    <init-param>
> +      <param-name>ExpiresByType image</param-name>
> +      <param-value>access plus 1 week</param-value>
> +    </init-param>
> +  </filter>
> +
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.js</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.css</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.gif</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.woff</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.ttf</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.eot</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>*.ico</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>/images/*</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +  <filter-mapping>
> +    <filter-name>ExpiresFilter</filter-name>
> +    <url-pattern>/icons/*</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +
> +  <filter-mapping>
> +    <filter-name>ImageExpiresFilter</filter-name>
> +    <url-pattern>/dhis-web-commons/*</url-pattern>
> +    <dispatcher>REQUEST</dispatcher>
> +  </filter-mapping>
> +
> +
> +  <!-- ======================== Introduction
> ============================== -->
> +  <!-- This document defines default values for *all* web applications
>    -->
> +  <!-- loaded into this instance of Tomcat.  As each application is
>   -->
> +  <!-- deployed, this file is processed, followed by the
>    -->
> +  <!-- "/WEB-INF/web.xml" deployment descriptor from your own
>   -->
> +  <!-- applications.
>    -->
> +  <!--
>    -->
> +  <!-- WARNING:  Do not configure application-specific resources here!
>    -->
> +  <!-- They should go in the "/WEB-INF/web.xml" file in your application.
>   -->
> +
> +
> +  <!-- ================== Built In Servlet Definitions
> ==================== -->
> +
> +
> +  <!-- The default servlet for all web applications, that serves static
>   -->
> +  <!-- resources.  It processes all requests that are not mapped to other
>   -->
> +  <!-- servlets with servlet mappings (defined either here or in your own
>   -->
> +  <!-- web.xml file.  This servlet supports the following initialization
>    -->
> +  <!-- parameters (default values are in square brackets):
>    -->
> +  <!--
>    -->
> +  <!--   debug               Debugging detail level for messages logged
>   -->
> +  <!--                       by this servlet.  [0]
>    -->
> +  <!--
>    -->
> +  <!--   fileEncoding        Encoding to be used to read static resources
>   -->
> +  <!--                       [platform default]
>   -->
> +  <!--
>    -->
> +  <!--   input               Input buffer size (in bytes) when reading
>    -->
> +  <!--                       resources to be served.  [2048]
>    -->
> +  <!--
>    -->
> +  <!--   listings            Should directory listings be produced if
> there -->
> +  <!--                       is no welcome file in this directory?
>  [false] -->
> +  <!--                       WARNING: Listings for directories with many
>    -->
> +  <!--                       entries can be slow and may consume
>    -->
> +  <!--                       significant proportions of server resources.
>   -->
> +  <!--
>    -->
> +  <!--   output              Output buffer size (in bytes) when writing
>   -->
> +  <!--                       resources to be served.  [2048]
>    -->
> +  <!--
>    -->
> +  <!--   readonly            Is this context "read only", so HTTP
>   -->
> +  <!--                       commands like PUT and DELETE are
>   -->
> +  <!--                       rejected?  [true]
>    -->
> +  <!--
>    -->
> +  <!--   readmeFile          File name to display with the directory
>    -->
> +  <!--                       contents. [null]
>   -->
> +  <!--
>    -->
> +  <!--   sendfileSize        If the connector used supports sendfile,
> this  -->
> +  <!--                       represents the minimal file size in KB for
>   -->
> +  <!--                       which sendfile will be used. Use a negative
>    -->
> +  <!--                       value to always disable sendfile.  [48]
>    -->
> +  <!--
>    -->
> +  <!--   useAcceptRanges     Should the Accept-Ranges header be included
>    -->
> +  <!--                       in responses where appropriate? [true]
>   -->
> +  <!--
>    -->
> +  <!--  For directory listing customization. Checks localXsltFile, then
>   -->
> +  <!--  globalXsltFile, then defaults to original behavior.
>   -->
> +  <!--
>    -->
> +  <!--   localXsltFile       Make directory listings an XML doc and
>   -->
> +  <!--                       pass the result to this style sheet residing
>   -->
> +  <!--                       in that directory. This overrides
>    -->
> +  <!--                       contextXsltFile and globalXsltFile[null]
>   -->
> +  <!--
>    -->
> +  <!--   contextXsltFile     Make directory listings an XML doc and
>   -->
> +  <!--                       pass the result to this style sheet which is
>   -->
> +  <!--                       relative to the context root. This overrides
>   -->
> +  <!--                       globalXsltFile[null]
>   -->
> +  <!--
>    -->
> +  <!--   globalXsltFile      Site wide configuration version of
>   -->
> +  <!--                       localXsltFile This argument is expected
>    -->
> +  <!--                       to be a physical file. [null]
>    -->
> +  <!--
>    -->
> +  <!--
>    -->
> +
> +    <servlet>
> +        <servlet-name>default</servlet-name>
> +
>  <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
> +        <init-param>
> +            <param-name>debug</param-name>
> +            <param-value>0</param-value>
> +        </init-param>
> +        <init-param>
> +            <param-name>listings</param-name>
> +            <param-value>false</param-value>
> +        </init-param>
> +        <load-on-startup>1</load-on-startup>
> +    </servlet>
> +
> +
> +  <!-- This servlet has been deprecated due to security concerns.
> Servlets  -->
> +  <!-- should be explicitly mapped in web.xml
>   -->
> +  <!--
>    -->
> +  <!-- The "invoker" servlet, which executes anonymous servlet classes
>    -->
> +  <!-- that have not been defined in a web.xml file.  Traditionally, this
>   -->
> +  <!-- servlet is mapped to the URL pattern "/servlet/*", but you can map
>   -->
> +  <!-- it to other patterns as well.  The extra path info portion of such
> a -->
> +  <!-- request must be the fully qualified class name of a Java class
> that  -->
> +  <!-- implements Servlet (or extends HttpServlet), or the servlet name
>   -->
> +  <!-- of an existing servlet definition.     This servlet supports the
>   -->
> +  <!-- following initialization parameters (default values are in square
>    -->
> +  <!-- brackets):
>   -->
> +  <!--
>    -->
> +  <!--   debug               Debugging detail level for messages logged
>   -->
> +  <!--                       by this servlet.  [0]
>    -->
> +
> +<!--
> +    <servlet>
> +        <servlet-name>invoker</servlet-name>
> +        <servlet-class>
> +          org.apache.catalina.servlets.InvokerServlet
> +        </servlet-class>
> +        <init-param>
> +            <param-name>debug</param-name>
> +            <param-value>0</param-value>
> +        </init-param>
> +        <load-on-startup>2</load-on-startup>
> +    </servlet>
> +-->
> +
> +
> +  <!-- The JSP page compiler and execution servlet, which is the
> mechanism  -->
> +  <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet
>    -->
> +  <!-- is mapped to the URL pattern "*.jsp".  This servlet supports the
>   -->
> +  <!-- following initialization parameters (default values are in square
>    -->
> +  <!-- brackets):
>   -->
> +  <!--
>    -->
> +  <!--   checkInterval       If development is false and checkInterval is
>   -->
> +  <!--                       greater than zero, background compilations
> are -->
> +  <!--                       enabled. checkInterval is the time in
> seconds  -->
> +  <!--                       between checks to see if a JSP page (and its
>   -->
> +  <!--                       dependent files) needs to  be recompiled.
> [0]  -->
> +  <!--
>    -->
> +  <!--   classdebuginfo      Should the class file be compiled with
>   -->
> +  <!--                       debugging information?  [true]
>   -->
> +  <!--
>    -->
> +  <!--   classpath           What class path should I use while compiling
>   -->
> +  <!--                       generated servlets?  [Created dynamically
>    -->
> +  <!--                       based on the current web application]
>    -->
> +  <!--
>    -->
> +  <!--   compiler            Which compiler Ant should use to compile JSP
>   -->
> +  <!--                       pages.  See the jasper documentation for
> more  -->
> +  <!--                       information.
>   -->
> +  <!--
>    -->
> +  <!--   compilerSourceVM    Compiler source VM. [1.5]
>    -->
> +  <!--
>    -->
> +  <!--   compilerTargetVM    Compiler target VM. [1.5]
>    -->
> +  <!--
>    -->
> +  <!--   development         Is Jasper used in development mode? If true,
>   -->
> +  <!--                       the frequency at which JSPs are checked for
>    -->
> +  <!--                       modification may be specified via the
>    -->
> +  <!--                       modificationTestInterval parameter. [true]
>   -->
> +  <!--
>    -->
> +  <!--   displaySourceFragment
>    -->
> +  <!--                       Should a source fragment be included in
>    -->
> +  <!--                       exception messages? [true]
>   -->
> +  <!--
>    -->
> +  <!--   dumpSmap            Should the SMAP info for JSR45 debugging be
>    -->
> +  <!--                       dumped to a file? [false]
>    -->
> +  <!--                       False if suppressSmap is true
>    -->
> +  <!--
>    -->
> +  <!--   enablePooling       Determines whether tag handler pooling is
>    -->
> +  <!--                       enabled. This is a compilation option. It
> will -->
> +  <!--                       not alter the behaviour of JSPs that have
>    -->
> +  <!--                       already been compiled. [true]
>    -->
> +  <!--
>    -->
> +  <!--   engineOptionsClass  Allows specifying the Options class used to
>    -->
> +  <!--                       configure Jasper. If not present, the
> default  -->
> +  <!--                       EmbeddedServletOptions will be used.
>   -->
> +  <!--
>    -->
> +  <!--   errorOnUseBeanInvalidClassAttribute
>    -->
> +  <!--                       Should Jasper issue an error when the value
> of -->
> +  <!--                       the class attribute in an useBean action is
>    -->
> +  <!--                       not a valid bean class?  [true]
>    -->
> +  <!--
>    -->
> +  <!--   fork                Tell Ant to fork compiles of JSP pages so
> that -->
> +  <!--                       a separate JVM is used for JSP page compiles
>   -->
> +  <!--                       from the one Tomcat is running in. [true]
>    -->
> +  <!--
>    -->
> +  <!--   genStrAsCharArray   Should text strings be generated as char
>   -->
> +  <!--                       arrays, to improve performance in some
> cases?  -->
> +  <!--                       [false]
>    -->
> +  <!--
>    -->
> +  <!--   ieClassId           The class-id value to be sent to Internet
>    -->
> +  <!--                       Explorer when using <jsp:plugin> tags.
>   -->
> +  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]
>   -->
> +  <!--
>    -->
> +  <!--   javaEncoding        Java file encoding to use for generating
> java  -->
> +  <!--                       source files. [UTF8]
>   -->
> +  <!--
>    -->
> +  <!--   keepgenerated       Should we keep the generated Java source
> code  -->
> +  <!--                       for each page instead of deleting it? [true]
>   -->
> +  <!--
>    -->
> +  <!--   mappedfile          Should we generate static content with one
>   -->
> +  <!--                       print statement per input line, to ease
>    -->
> +  <!--                       debugging?  [true]
>   -->
> +  <!--
>    -->
> +  <!--   modificationTestInterval
>   -->
> +  <!--                       Causes a JSP (and its dependent files) to
> not  -->
> +  <!--                       be checked for modification during the
>   -->
> +  <!--                       specified time interval (in seconds) from
> the  -->
> +  <!--                       last time the JSP was checked for
>    -->
> +  <!--                       modification. A value of 0 will cause the
> JSP  -->
> +  <!--                       to be checked on every access.
>   -->
> +  <!--                       Used in development mode only. [4]
>   -->
> +  <!--
>    -->
> +  <!--   recompileOnFail     If a JSP compilation fails should the
>    -->
> +  <!--                       modificationTestInterval be ignored and the
>    -->
> +  <!--                       next access trigger a re-compilation
> attempt?  -->
> +  <!--                       Used in development mode only and is
> disabled  -->
> +  <!--                       by default as compilation may be expensive
> and -->
> +  <!--                       could lead to excessive resource usage.
>    -->
> +  <!--                       [false]
>    -->
> +  <!--
>    -->
> +  <!--   scratchdir          What scratch directory should we use when
>    -->
> +  <!--                       compiling JSP pages?  [default work
> directory  -->
> +  <!--                       for the current web application]
>   -->
> +  <!--
>    -->
> +  <!--   suppressSmap        Should the generation of SMAP info for JSR45
>   -->
> +  <!--                       debugging be suppressed?  [false]
>    -->
> +  <!--
>    -->
> +  <!--   trimSpaces          Should white spaces in template text between
>   -->
> +  <!--                       actions or directives be trimmed?  [false]
>   -->
> +  <!--
>    -->
> +  <!--   xpoweredBy          Determines whether X-Powered-By response
>   -->
> +  <!--                       header is added by generated servlet
>  [false]  -->
> +  <!--
>    -->
> +  <!-- If you wish to use Jikes to compile JSP pages:
>   -->
> +  <!--   Please see the "Using Jikes" section of the Jasper-HowTo
>   -->
> +  <!--   page in the Tomcat documentation.
>    -->
> +
> +    <servlet>
> +        <servlet-name>jsp</servlet-name>
> +
>  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
> +        <init-param>
> +            <param-name>fork</param-name>
> +            <param-value>false</param-value>
> +        </init-param>
> +        <init-param>
> +            <param-name>xpoweredBy</param-name>
> +            <param-value>false</param-value>
> +        </init-param>
> +        <load-on-startup>3</load-on-startup>
> +    </servlet>
> +
> +
> +  <!-- NOTE: An SSI Filter is also available as an alternative SSI
>    -->
> +  <!-- implementation. Use either the Servlet or the Filter but NOT both.
>   -->
> +  <!--
>    -->
> +  <!-- Server Side Includes processing servlet, which processes SSI
>   -->
> +  <!-- directives in HTML pages consistent with similar support in web
>    -->
> +  <!-- servers like Apache.  Traditionally, this servlet is mapped to the
>   -->
> +  <!-- URL pattern "*.shtml".  This servlet supports the following
>    -->
> +  <!-- initialization parameters (default values are in square brackets):
>   -->
> +  <!--
>    -->
> +  <!--   buffered            Should output from this servlet be buffered?
>   -->
> +  <!--                       (0=false, 1=true)  [0]
>   -->
> +  <!--
>    -->
> +  <!--   debug               Debugging detail level for messages logged
>   -->
> +  <!--                       by this servlet.  [0]
>    -->
> +  <!--
>    -->
> +  <!--   expires             The number of seconds before a page with SSI
>   -->
> +  <!--                       directives will expire.  [No default]
>    -->
> +  <!--
>    -->
> +  <!--   isVirtualWebappRelative
>    -->
> +  <!--                       Should "virtual" paths be interpreted as
>   -->
> +  <!--                       relative to the context root, instead of
>   -->
> +  <!--                       the server root?  (0=false, 1=true) [0]
>    -->
> +  <!--
>    -->
> +  <!--   inputEncoding       The encoding to assume for SSI resources if
>    -->
> +  <!--                       one is not available from the resource.
>    -->
> +  <!--                       [Platform default]
>   -->
> +  <!--
>    -->
> +  <!--   outputEncoding      The encoding to use for the page that
> results  -->
> +  <!--                       from the SSI processing. [UTF-8]
>   -->
> +  <!--
>    -->
> +  <!--   allowExec           Is use of the exec command enabled? [false]
>    -->
> +
> +<!--
> +    <servlet>
> +        <servlet-name>ssi</servlet-name>
> +        <servlet-class>
> +          org.apache.catalina.ssi.SSIServlet
> +        </servlet-class>
> +        <init-param>
> +          <param-name>buffered</param-name>
> +          <param-value>1</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>debug</param-name>
> +          <param-value>0</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>expires</param-name>
> +          <param-value>666</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>isVirtualWebappRelative</param-name>
> +          <param-value>0</param-value>
> +        </init-param>
> +        <load-on-startup>4</load-on-startup>
> +    </servlet>
> +-->
> +
> +
> +  <!-- Common Gateway Includes (CGI) processing servlet, which supports
>   -->
> +  <!-- execution of external applications that conform to the CGI spec
>    -->
> +  <!-- requirements.  Typically, this servlet is mapped to the URL
> pattern  -->
> +  <!-- "/cgi-bin/*", which means that any CGI applications that are
>   -->
> +  <!-- executed must be present within the web application.  This servlet
>   -->
> +  <!-- supports the following initialization parameters (default values
>   -->
> +  <!-- are in square brackets):
>   -->
> +  <!--
>    -->
> +  <!--   cgiPathPrefix        The CGI search path will start at
>   -->
> +  <!--                        webAppRootDir + File.separator + this
> prefix. -->
> +  <!--                        [WEB-INF/cgi]
>   -->
> +  <!--
>    -->
> +  <!--   debug                Debugging detail level for messages logged
>    -->
> +  <!--                        by this servlet.  [0]
>   -->
> +  <!--
>    -->
> +  <!--   executable           Name of the executable used to run the
>    -->
> +  <!--                        script. [perl]
>    -->
> +  <!--
>    -->
> +  <!--   parameterEncoding    Name of parameter encoding to be used with
>    -->
> +  <!--                        CGI servlet.
>    -->
> +  <!--
>  [System.getProperty("file.encoding","UTF-8")] -->
> +  <!--
>    -->
> +  <!--   passShellEnvironment Should the shell environment variables (if
>    -->
> +  <!--                        any) be passed to the CGI script? [false]
>   -->
> +  <!--
>    -->
> +  <!--   stderrTimeout        The time (in milliseconds) to wait for the
>    -->
> +  <!--                        reading of stderr to complete before
>    -->
> +  <!--                        terminating the CGI process. [2000]
>   -->
> +
> +<!--
> +    <servlet>
> +        <servlet-name>cgi</servlet-name>
> +
>  <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
> +        <init-param>
> +          <param-name>debug</param-name>
> +          <param-value>0</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>cgiPathPrefix</param-name>
> +          <param-value>WEB-INF/cgi</param-value>
> +        </init-param>
> +         <load-on-startup>5</load-on-startup>
> +    </servlet>
> +-->
> +
> +
> +  <!-- ================ Built In Servlet Mappings
> ========================= -->
> +
> +
> +  <!-- The servlet mappings for the built in servlets defined above.
>  Note  -->
> +  <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You
>    -->
> +  <!-- must uncomment these mappings (or add them to your application's
> own -->
> +  <!-- web.xml deployment descriptor) to enable these services
>    -->
> +
> +    <!-- The mapping for the default servlet -->
> +    <servlet-mapping>
> +        <servlet-name>default</servlet-name>
> +        <url-pattern>/</url-pattern>
> +    </servlet-mapping>
> +
> +    <!-- The mapping for the deprecated invoker servlet -->
> +<!--
> +    <servlet-mapping>
> +        <servlet-name>invoker</servlet-name>
> +        <url-pattern>/servlet/*</url-pattern>
> +    </servlet-mapping>
> +-->
> +
> +    <!-- The mapping for the JSP servlet -->
> +    <servlet-mapping>
> +        <servlet-name>jsp</servlet-name>
> +        <url-pattern>*.jsp</url-pattern>
> +    </servlet-mapping>
> +
> +    <servlet-mapping>
> +        <servlet-name>jsp</servlet-name>
> +        <url-pattern>*.jspx</url-pattern>
> +    </servlet-mapping>
> +
> +    <!-- The mapping for the SSI servlet -->
> +<!--
> +    <servlet-mapping>
> +        <servlet-name>ssi</servlet-name>
> +        <url-pattern>*.shtml</url-pattern>
> +    </servlet-mapping>
> +-->
> +
> +    <!-- The mapping for the CGI Gateway servlet -->
> +
> +<!--
> +    <servlet-mapping>
> +        <servlet-name>cgi</servlet-name>
> +        <url-pattern>/cgi-bin/*</url-pattern>
> +    </servlet-mapping>
> +-->
> +
> +
> +  <!-- ================== Built In Filter Definitions
> ===================== -->
> +
> +  <!-- NOTE: An SSI Servlet is also available as an alternative SSI
>   -->
> +  <!-- implementation. Use either the Servlet or the Filter but NOT both.
>   -->
> +  <!--
>    -->
> +  <!-- Server Side Includes processing filter, which processes SSI
>    -->
> +  <!-- directives in HTML pages consistent with similar support in web
>    -->
> +  <!-- servers like Apache.  Traditionally, this filter is mapped to the
>    -->
> +  <!-- URL pattern "*.shtml", though it can be mapped to "*" as it will
>   -->
> +  <!-- selectively enable/disable SSI processing based on mime types. For
>   -->
> +  <!-- this to work you will need to uncomment the .shtml mime type
>   -->
> +  <!-- definition towards the bottom of this file.
>    -->
> +  <!-- The contentType init param allows you to apply SSI processing to
> JSP -->
> +  <!-- pages, javascript, or any other content you wish.  This filter
>   -->
> +  <!-- supports the following initialization parameters (default values
> are -->
> +  <!-- in square brackets):
>   -->
> +  <!--
>    -->
> +  <!--   contentType         A regex pattern that must be matched before
>    -->
> +  <!--                       SSI processing is applied.
>   -->
> +  <!--                       [text/x-server-parsed-html(;.*)?]
>    -->
> +  <!--
>    -->
> +  <!--   debug               Debugging detail level for messages logged
>   -->
> +  <!--                       by this servlet.  [0]
>    -->
> +  <!--
>    -->
> +  <!--   expires             The number of seconds before a page with SSI
>   -->
> +  <!--                       directives will expire.  [No default]
>    -->
> +  <!--
>    -->
> +  <!--   isVirtualWebappRelative
>    -->
> +  <!--                       Should "virtual" paths be interpreted as
>   -->
> +  <!--                       relative to the context root, instead of
>   -->
> +  <!--                       the server root?  (0=false, 1=true) [0]
>    -->
> +  <!--
>    -->
> +  <!--   allowExec           Is use of the exec command enabled? [false]
>    -->
> +
> +<!--
> +    <filter>
> +        <filter-name>ssi</filter-name>
> +        <filter-class>
> +          org.apache.catalina.ssi.SSIFilter
> +        </filter-class>
> +        <init-param>
> +          <param-name>contentType</param-name>
> +          <param-value>text/x-server-parsed-html(;.*)?</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>debug</param-name>
> +          <param-value>0</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>expires</param-name>
> +          <param-value>666</param-value>
> +        </init-param>
> +        <init-param>
> +          <param-name>isVirtualWebappRelative</param-name>
> +          <param-value>0</param-value>
> +        </init-param>
> +    </filter>
> +-->
> +
> +
> +  <!-- ==================== Built In Filter Mappings
> ====================== -->
> +
> +  <!-- The mapping for the SSI Filter -->
> +<!--
> +    <filter-mapping>
> +        <filter-name>ssi</filter-name>
> +        <url-pattern>*.shtml</url-pattern>
> +    </filter-mapping>
> +-->
> +
> +
> +  <!-- ==================== Default Session Configuration
> ================= -->
> +  <!-- You can set the default session timeout (in minutes) for all newly
>   -->
> +  <!-- created sessions by modifying the value below.
>   -->
> +
> +    <session-config>
> +        <session-timeout>30</session-timeout>
> +    </session-config>
> +
> +
> +  <!-- ===================== Default MIME Type Mappings
> =================== -->
> +  <!-- When serving static resources, Tomcat will automatically generate
>    -->
> +  <!-- a "Content-Type" header based on the resource's filename
> extension,  -->
> +  <!-- based on these mappings.  Additional mappings can be added here
> (to  -->
> +  <!-- apply to all web applications), or in your own application's
> web.xml -->
> +  <!-- deployment descriptor.
>   -->
> +
> +    <mime-mapping>
> +        <extension>abs</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ai</extension>
> +        <mime-type>application/postscript</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>aif</extension>
> +        <mime-type>audio/x-aiff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>aifc</extension>
> +        <mime-type>audio/x-aiff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>aiff</extension>
> +        <mime-type>audio/x-aiff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>aim</extension>
> +        <mime-type>application/x-aim</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>art</extension>
> +        <mime-type>image/x-jg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>asf</extension>
> +        <mime-type>video/x-ms-asf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>asx</extension>
> +        <mime-type>video/x-ms-asf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>au</extension>
> +        <mime-type>audio/basic</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>avi</extension>
> +        <mime-type>video/x-msvideo</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>avx</extension>
> +        <mime-type>video/x-rad-screenplay</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>bcpio</extension>
> +        <mime-type>application/x-bcpio</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>bin</extension>
> +        <mime-type>application/octet-stream</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>bmp</extension>
> +        <mime-type>image/bmp</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>body</extension>
> +        <mime-type>text/html</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>cdf</extension>
> +        <mime-type>application/x-cdf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>cer</extension>
> +        <mime-type>application/x-x509-ca-cert</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>class</extension>
> +        <mime-type>application/java</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>cpio</extension>
> +        <mime-type>application/x-cpio</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>csh</extension>
> +        <mime-type>application/x-csh</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>css</extension>
> +        <mime-type>text/css</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>dib</extension>
> +        <mime-type>image/bmp</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>doc</extension>
> +        <mime-type>application/msword</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>dtd</extension>
> +        <mime-type>application/xml-dtd</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>dv</extension>
> +        <mime-type>video/x-dv</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>dvi</extension>
> +        <mime-type>application/x-dvi</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>eps</extension>
> +        <mime-type>application/postscript</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>etx</extension>
> +        <mime-type>text/x-setext</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>exe</extension>
> +        <mime-type>application/octet-stream</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>gif</extension>
> +        <mime-type>image/gif</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>gtar</extension>
> +        <mime-type>application/x-gtar</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>gz</extension>
> +        <mime-type>application/x-gzip</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>hdf</extension>
> +        <mime-type>application/x-hdf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>hqx</extension>
> +        <mime-type>application/mac-binhex40</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>htc</extension>
> +        <mime-type>text/x-component</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>htm</extension>
> +        <mime-type>text/html</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>html</extension>
> +        <mime-type>text/html</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>hqx</extension>
> +        <mime-type>application/mac-binhex40</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ief</extension>
> +        <mime-type>image/ief</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jad</extension>
> +        <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jar</extension>
> +        <mime-type>application/java-archive</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>java</extension>
> +        <mime-type>text/plain</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jnlp</extension>
> +        <mime-type>application/x-java-jnlp-file</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jpe</extension>
> +        <mime-type>image/jpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jpeg</extension>
> +        <mime-type>image/jpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jpg</extension>
> +        <mime-type>image/jpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>js</extension>
> +        <mime-type>text/javascript</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jsf</extension>
> +        <mime-type>text/plain</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>jspf</extension>
> +        <mime-type>text/plain</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>kar</extension>
> +        <mime-type>audio/x-midi</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>latex</extension>
> +        <mime-type>application/x-latex</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>m3u</extension>
> +        <mime-type>audio/x-mpegurl</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mac</extension>
> +        <mime-type>image/x-macpaint</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>man</extension>
> +        <mime-type>application/x-troff-man</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mathml</extension>
> +        <mime-type>application/mathml+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>me</extension>
> +        <mime-type>application/x-troff-me</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mid</extension>
> +        <mime-type>audio/x-midi</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>midi</extension>
> +        <mime-type>audio/x-midi</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mif</extension>
> +        <mime-type>application/x-mif</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mov</extension>
> +        <mime-type>video/quicktime</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>movie</extension>
> +        <mime-type>video/x-sgi-movie</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mp1</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mp2</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mp3</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mp4</extension>
> +        <mime-type>video/mp4</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpa</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpe</extension>
> +        <mime-type>video/mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpeg</extension>
> +        <mime-type>video/mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpega</extension>
> +        <mime-type>audio/x-mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpg</extension>
> +        <mime-type>video/mpeg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>mpv2</extension>
> +        <mime-type>video/mpeg2</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ms</extension>
> +        <mime-type>application/x-wais-source</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>nc</extension>
> +        <mime-type>application/x-netcdf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>oda</extension>
> +        <mime-type>application/oda</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Database -->
> +        <extension>odb</extension>
> +        <mime-type>application/vnd.oasis.opendocument.database</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Chart -->
> +        <extension>odc</extension>
> +        <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Formula -->
> +        <extension>odf</extension>
> +        <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Drawing -->
> +        <extension>odg</extension>
> +        <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Image -->
> +        <extension>odi</extension>
> +        <mime-type>application/vnd.oasis.opendocument.image</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Master Document -->
> +        <extension>odm</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Presentation -->
> +        <extension>odp</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Spreadsheet -->
> +        <extension>ods</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Text -->
> +        <extension>odt</extension>
> +        <mime-type>application/vnd.oasis.opendocument.text</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ogg</extension>
> +        <mime-type>application/ogg</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Drawing Template -->
> +        <extension>otg </extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- HTML Document Template -->
> +        <extension>oth</extension>
> +        <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Presentation Template -->
> +        <extension>otp</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Spreadsheet Template -->
> +        <extension>ots</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.spreadsheet-template
> </mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <!-- OpenDocument Text Template -->
> +        <extension>ott</extension>
> +
>  <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pbm</extension>
> +        <mime-type>image/x-portable-bitmap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pct</extension>
> +        <mime-type>image/pict</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pdf</extension>
> +        <mime-type>application/pdf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pgm</extension>
> +        <mime-type>image/x-portable-graymap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pic</extension>
> +        <mime-type>image/pict</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pict</extension>
> +        <mime-type>image/pict</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pls</extension>
> +        <mime-type>audio/x-scpls</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>png</extension>
> +        <mime-type>image/png</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pnm</extension>
> +        <mime-type>image/x-portable-anymap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pnt</extension>
> +        <mime-type>image/x-macpaint</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ppm</extension>
> +        <mime-type>image/x-portable-pixmap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ppt</extension>
> +        <mime-type>application/vnd.ms-powerpoint</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>pps</extension>
> +        <mime-type>application/vnd.ms-powerpoint</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ps</extension>
> +        <mime-type>application/postscript</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>psd</extension>
> +        <mime-type>image/x-photoshop</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>qt</extension>
> +        <mime-type>video/quicktime</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>qti</extension>
> +        <mime-type>image/x-quicktime</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>qtif</extension>
> +        <mime-type>image/x-quicktime</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ras</extension>
> +        <mime-type>image/x-cmu-raster</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>rdf</extension>
> +        <mime-type>application/rdf+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>rgb</extension>
> +        <mime-type>image/x-rgb</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>rm</extension>
> +        <mime-type>application/vnd.rn-realmedia</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>roff</extension>
> +        <mime-type>application/x-troff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>rtf</extension>
> +        <mime-type>application/rtf</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>rtx</extension>
> +        <mime-type>text/richtext</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>sh</extension>
> +        <mime-type>application/x-sh</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>shar</extension>
> +        <mime-type>application/x-shar</mime-type>
> +    </mime-mapping>
> +<!--
> +    <mime-mapping>
> +        <extension>shtml</extension>
> +        <mime-type>text/x-server-parsed-html</mime-type>
> +    </mime-mapping>
> +-->
> +    <mime-mapping>
> +        <extension>smf</extension>
> +        <mime-type>audio/x-midi</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>sit</extension>
> +        <mime-type>application/x-stuffit</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>snd</extension>
> +        <mime-type>audio/basic</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>src</extension>
> +        <mime-type>application/x-wais-source</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>sv4cpio</extension>
> +        <mime-type>application/x-sv4cpio</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>sv4crc</extension>
> +        <mime-type>application/x-sv4crc</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>svg</extension>
> +        <mime-type>image/svg+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>svgz</extension>
> +        <mime-type>image/svg+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>swf</extension>
> +        <mime-type>application/x-shockwave-flash</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>t</extension>
> +        <mime-type>application/x-troff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tar</extension>
> +        <mime-type>application/x-tar</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tcl</extension>
> +        <mime-type>application/x-tcl</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tex</extension>
> +        <mime-type>application/x-tex</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>texi</extension>
> +        <mime-type>application/x-texinfo</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>texinfo</extension>
> +        <mime-type>application/x-texinfo</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tif</extension>
> +        <mime-type>image/tiff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tiff</extension>
> +        <mime-type>image/tiff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tr</extension>
> +        <mime-type>application/x-troff</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>tsv</extension>
> +        <mime-type>text/tab-separated-values</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>txt</extension>
> +        <mime-type>text/plain</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ulw</extension>
> +        <mime-type>audio/basic</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>ustar</extension>
> +        <mime-type>application/x-ustar</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>vxml</extension>
> +        <mime-type>application/voicexml+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xbm</extension>
> +        <mime-type>image/x-xbitmap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xht</extension>
> +        <mime-type>application/xhtml+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xhtml</extension>
> +        <mime-type>application/xhtml+xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xls</extension>
> +        <mime-type>application/vnd.ms-excel</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xml</extension>
> +        <mime-type>application/xml</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xpm</extension>
> +        <mime-type>image/x-xpixmap</mime-type>
> +    </mime-mapping>
> +    <mime-mapping>
> +        <extension>xsl</extension>
> +
> ...
>
> [Message clipped]

References