<!--

 Copyright 2001-2005 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.

-->

<html>
<head>
<title>Overview Documentation for COMMONS-LOGGING (OPTIONAL)</title>
</head>
<body bgcolor="white">
<p>Contains optional additions to JCL.</p>

<p>Contained are classes which are not considered appropriate
to distribute as part of JCL main distribution. 
Some classes are JVM dependent. 
Others are targetted at uncommon use cases.
Utility code is also appropriate.
</p>
</body>
</html>
