  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.


  This is excludes file for Apache RAT tool run by ASF Buildbot,
  https://creadur.apache.org/rat/

  The following files are excluded:

  - log files and other temporary files generated during testing

  - *.html files in documentation are generated from XML sources

  - *.md5, *.sha/*.sha1 files are generated and cannot contain license

  - *.manifest, MANIFEST.MF JAR manifest files cannot contain license

  - package-list files in API documentation (javadoc) are generated

  - other test files, such as trivial textual files containing only "OK' string,
    files in unusual encodings or compressed files are also excluded.

  - JSON files (RFC7159) are data and cannot contain comments

  - local build configuration files

  - file fragments that are combined during the build process and therefore can
    not contain a license header in every fragment

  - JavaEE XML schemas that are CDDL licensed

  - Checkstyle configuration file that defines how to check for the presence of
    ALv2 headers

  - files used simply to ensure directories are not empty

  - *.bmp, *.dia files are binary
    (*.gif, *.jpg are also binary, but are automatically detected by RAT as
    ones, so no explicit configuration is needed)

  - unused modules

  - Markdown files for display in ther GitHub UI

  - Temporary cache files used by Checkstle


output/build/logs/*
output/test-tmp/**

output/build/webapps/docs/**/*.html
output/dist/webapps/docs/**/*.html
output/deployer/deployer-howto.html

**/*.md5
**/*.sha1

**/MANIFEST.MF
**/*.manifest

output/dist/webapps/docs/*/package-list

output/dist/src/test/webapp/index.html.br
output/dist/src/test/webapp/bug49nnn/bug49464-cp1252.txt
output/dist/src/test/webapp/bug49nnn/bug49464-ibm850.txt
output/dist/src/test/webapp/bug49nnn/bug49464-iso-8859-1.txt
output/dist/src/test/webapp/bug49nnn/bug49464-utf-8-bom.txt
output/dist/src/test/webapp/bug49nnn/bug49464-utf-8.txt
output/dist/src/test/webapp/bug53257/*.txt
output/dist/src/test/webapp/bug53257/foo bar/foobar.txt
output/dist/src/test/webapp-fragments/WEB-INF/classes/*.txt
output/dist/src/test/webresources/dir1/d1/d1-f1.txt
output/dist/src/test/webresources/dir1/d2/d2-f1.txt
output/dist/src/test/webresources/dir1/*.txt
test/webapp/index.html.br
test/webapp/bug49nnn/bug49464-cp1252.txt
test/webapp/bug49nnn/bug49464-ibm850.txt
test/webapp/bug49nnn/bug49464-iso-8859-1.txt
test/webapp/bug49nnn/bug49464-utf-8-bom.txt
test/webapp/bug49nnn/bug49464-utf-8.txt
test/webapp/bug53257/*.txt
test/webapp/bug53257/foo bar/foobar.txt
test/webapp-fragments/WEB-INF/classes/*.txt
test/webresources/dir1/d1/d1-f1.txt
test/webresources/dir1/d2/d2-f1.txt
test/webresources/dir1/*.txt

**/*.json

build.properties

output/dist/confinstall/tomcat-users_2.xml
output/dist/src/res/confinstall/tomcat-users_2.xml
res/confinstall/tomcat-users_2.xml

java/javax/servlet/resources/javaee_5.xsd
java/javax/servlet/resources/javaee_6.xsd
java/javax/servlet/resources/javaee_7.xsd
java/javax/servlet/resources/javaee_web_services_1_2.xsd
java/javax/servlet/resources/javaee_web_services_1_3.xsd
java/javax/servlet/resources/javaee_web_services_1_4.xsd
java/javax/servlet/resources/javaee_web_services_client_1_2.xsd
java/javax/servlet/resources/javaee_web_services_client_1_3.xsd
java/javax/servlet/resources/javaee_web_services_client_1_4.xsd
java/javax/servlet/resources/jsp_2_2.xsd
java/javax/servlet/resources/jsp_2_3.xsd
java/javax/servlet/resources/web-app_3_0.xsd
java/javax/servlet/resources/web-app_3_1.xsd
java/javax/servlet/resources/web-common_3_0.xsd
java/javax/servlet/resources/web-common_3_1.xsd
java/javax/servlet/resources/web-fragment_3_0.xsd
java/javax/servlet/resources/web-fragment_3_1.xsd
output/classes/javax/servlet/resources/javaee_5.xsd
output/classes/javax/servlet/resources/javaee_6.xsd
output/classes/javax/servlet/resources/javaee_7.xsd
output/classes/javax/servlet/resources/javaee_web_services_1_2.xsd
output/classes/javax/servlet/resources/javaee_web_services_1_3.xsd
output/classes/javax/servlet/resources/javaee_web_services_1_4.xsd
output/classes/javax/servlet/resources/javaee_web_services_client_1_2.xsd
output/classes/javax/servlet/resources/javaee_web_services_client_1_3.xsd
output/classes/javax/servlet/resources/javaee_web_services_client_1_4.xsd
output/classes/javax/servlet/resources/jsp_2_2.xsd
output/classes/javax/servlet/resources/jsp_2_3.xsd
output/classes/javax/servlet/resources/web-app_3_0.xsd
output/classes/javax/servlet/resources/web-app_3_1.xsd
output/classes/javax/servlet/resources/web-common_3_0.xsd
output/classes/javax/servlet/resources/web-common_3_1.xsd
output/classes/javax/servlet/resources/web-fragment_3_0.xsd
output/classes/javax/servlet/resources/web-fragment_3_1.xsd
output/dist/src/java/javax/servlet/resources/javaee_5.xsd
output/dist/src/java/javax/servlet/resources/javaee_6.xsd
output/dist/src/java/javax/servlet/resources/javaee_7.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_1_2.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_1_3.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_1_4.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_client_1_2.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_client_1_3.xsd
output/dist/src/java/javax/servlet/resources/javaee_web_services_client_1_4.xsd
output/dist/src/java/javax/servlet/resources/jsp_2_2.xsd
output/dist/src/java/javax/servlet/resources/jsp_2_3.xsd
output/dist/src/java/javax/servlet/resources/web-app_3_0.xsd
output/dist/src/java/javax/servlet/resources/web-app_3_1.xsd
output/dist/src/java/javax/servlet/resources/web-common_3_0.xsd
output/dist/src/java/javax/servlet/resources/web-common_3_1.xsd
output/dist/src/java/javax/servlet/resources/web-fragment_3_0.xsd
output/dist/src/java/javax/servlet/resources/web-fragment_3_1.xsd

output/dist/src/res/checkstyle/header-al2.txt
res/checkstyle/header-al2.txt

output/dist/temp/safeToDelete.tmp

**/*.bmp
**/*.dia

modules/bayeux/**
modules/tomcat-lite/**

**/*.md

output/res/checkstyle/*
