<?xml version="1.0"?>
<document>
<copyright>
   Copyright 1999-2004 The Apache Software Foundation
 
   Licensed 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.
</copyright>
	<properties>
		<title>Configuration options</title>
		<author email="jfrederic.clere@fujitsu-siemens.com">Jean-Frederic Clere</author>
		<date>$Date$</date>
	</properties>
	<section name="Intro">
		<p>
  This document describes the configuration file used by mod_jk2 on the
  Tomcat site. Its default name is ${jkHome}/conf/jk2.properties,
  where ${jkHome} is the well known ${catalina.base} property.
</p>
	</section>
	<section name="Config File Format">
	<p> settings are specified in the following format:
	<source>
	handler.propertie=value
	</source>
	</p></section>
	<section name="Generic properties">
		<p>
			<table>
				<tr>
					<th>Property name</th>
					<th>Default</th>
					<th>Description</th>
				</tr>
				<tr>
					<td>handler.list</td>
					<td>request,container,channelSocket</td>
					<td>Handlers to load.</td>
				</tr>
				<tr>
					<td>class.myhandler</td>
					<td>No default value</td>
					<td>Define the class of the handler myhandler.</td>
				</tr>
			</table>
		</p>
	</section>
</document>
