<?xml version="1.0"?>
<!--
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.
-->
<!DOCTYPE module PUBLIC
    "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
    "https://checkstyle.org/dtds/configuration_1_2.dtd">
<module name="Checker">
  <property name="localeLanguage" value="en" />
  <module name="JavadocPackage">
    <!-- setting allowLegacy means it will check for package.html instead of just package-info.java -->
    <property name="allowLegacy" value="true" />
  </module>
  <module name="FileTabCharacter">
    <property name="fileExtensions" value="java,xml" />
  </module>
  <module name="LineLength">
    <property name="max" value="160" />
  </module>
  <module name="TreeWalker">
    <module name="AvoidStarImport" />
    <module name="RedundantImport" />
    <module name="UnusedImports" />
    <module name="NeedBraces" />
    <module name="LeftCurly" />
    <module name="JavadocMethod" />
    <module name="FinalLocalVariable" />
    <!-- No Trailing whitespace -->
    <module name="Regexp">
      <property name="format" value="[ \t]+$" />
      <property name="illegalPattern" value="true" />
      <property name="message" value="Trailing whitespace" />
    </module>
  </module>
</module>
