= Description =

Host lifecycle event listener for Apache Tomcat to automatically
deploy update and undeploy applications from user home directories.

This is a rewrite of org.apache.catalina.startup.UserConfig listener
included in Tomcat which adds the following features:
 - multiple web applications for each user,
 - automatic application deployment,
 - on UNIX read network user database using getent command.

= Installation =

Copy userconfig.jar to Tomcat lib directory. Add Listener to the Host
element in the Tomcat configuration file (server.xml).

Listener that uses passwd database to list users:
    <Listener className="kryshen.catalina.userconfig.PasswdUserConfig"/>

Listener that considers all home directories in the specified base
    <Listener className="kryshen.catalina.userconfig.HomesUserConfig"/>

= Listener properties =


  directoryName - base directory for web applications inside user's
                  home directory. Default: "public_webapps".

  appsPerUser - maximum number of application each user is allowed to
                deploy. If greater than 1 (multi-app mode) each user's
                application subdirectory in the base directory is
                mapped to "/~username/application", "ROOT" is mapped
                to "/~username". In single-app mode (appsPerUser = 1)
                the base directory is mapped to "/~username".


  passwd - path to local passwd file. Default: "/etc/passwd".

  getent - path to getent program. Local passwd is used if this is not
           set. Default: not set (null).


  homeBase - base directory for user homes. Default: "/home".

= Example = 

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false"

     <Listener className="kryshen.catalina.userconfig.PasswdUserConfig"
               getent="/usr/bin/getent" appsPerUser="5"/>