dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #22770
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