<?xml version="1.0" encoding="UTF-8"?>
<!--
  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
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<!--
Checks to make sure the code meets the Camel coding guidelines which

It also enforces a bunch of other "BestPractices like method
lengths, if/try depths, etc...
-->

<module name="Checker">
    <!-- Checks whether files end with a new line.                        -->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    <!--
    <module name="NewlineAtEndOfFile"/>
    -->

    <!-- Checks that property files contain the same keys.         -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <module name="Translation"/>

    <!--<module name="StrictDuplicateCode"/>-->
    
    <!-- Header checks -->
    <module name="Header">
    	<property name="header"
        	value="/**\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the &quot;License&quot;); you may not use this file except in compliance with\n * the License.  You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"/>
    </module>
    
    <module name="RegexpMultiline">
        <property name="format" value="(\bgpl\b)|(\bgplv2\b)|(\bgnu\sgeneral\spublic\s*license\b)|(\bwww\.gnu\.org\/licenses\/gpl\.txt\b)"/>
        <property name="ignoreCase"  value="true"/>
    </module>
    
    <module name="FileLength">
        <property name="max" value="4500"/>
    </module>
    
    <module name="FileTabCharacter">
        <property name="fileExtensions" value="java"/>
    </module>
    
    <!-- 
	<module name="RegexpSingleline">
		<property name="format" value="\s+$"/>
		<property name="minimum" value="0"/>
		<property name="maximum" value="0"/>
	</module>
	 -->

    <module name="TreeWalker">
        <!-- Enable FileContentsHolder to allow us to in turn turn on suppression comments -->
        <module name="FileContentsHolder" />

        <!-- Checks for Javadoc comments.                     -->
        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
        <!--
        <module name="PackageHtml"/>
        <module name="JavadocMethod"/>
        <module name="JavadocType"/>
        <module name="JavadocVariable"/>
        <module name="JavadocStyle"/>
        -->


        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
        <module name="ConstantName"/>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>

        <!-- <module name="RegexpHeader"/> -->


        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport">
            <property name="excludes" value="java.io,java.util,java.net,java.nio,java.nio.channels,java.lang.reflect,org.w3c.dom,org.xml.sax,java.awt,javax.swing,junit.framework"/>
            <property name="allowStaticMemberImports" value="true"/>
        </module>
        <!-- 
        <module name="ConstantName"/>
         -->
        <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
        <module name="RedundantImport"/>
        <!-- When you javadoc {@link } an import is added that checkstyle thinks is unused import.
        <module name="UnusedImports"/>
        -->
        <module name="ImportOrder">
            <property name="groups" value="java,javax,org.w3c,org.xml,junit"/>
            <property name="ordered" value="true"/>
        </module>
        <!--
        <module name="ImportControl">
            <property name="file" value="etc/import-control.xml"/>
        </module>
        -->

        <!-- Checks for Size Violations.                    -->
        <!-- See http://checkstyle.sf.net/config_sizes.html -->
        <module name="AnonInnerLength">
            <property name="max" value="200"/>
        </module>
        <module name="ExecutableStatementCount">
            <property name="max" value="100"/>
        </module>
        <module name="LineLength">
            <property name="max" value="200"/>
        </module>
        <module name="MethodLength">
            <property name="max" value="200"/>
            <property name="countEmpty" value="false"/>
        </module>
        <!-- We should try to get this enabled soon..
        <module name="ParameterNumber">
            <property name="max" value="7"/>
        </module>
        -->

        <!-- Checks for whitespace                               -->
        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
        <module name="EmptyForIteratorPad"/>
        <module name="EmptyForInitializerPad"/>
        <module name="MethodParamPad"/>
        <module name="NoWhitespaceAfter">
            <property name="tokens" value="ARRAY_INIT,BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"/>
        </module>
        <module name="NoWhitespaceBefore"/>
        <module name="OperatorWrap"/>
        <module name="ParenPad"/>
        <module name="TypecastParenPad"/>
        <module name="WhitespaceAfter">
            <property name="tokens" value="COMMA, SEMI"/>
        </module>
        <module name="WhitespaceAround">
            <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND"/>
            <!-- <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND"/>-->
        </module>

		<!-- 
		<module name="GenericWhitespace"/>
		 -->

        <!-- Modifier Checks                                    -->
        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
        <module name="ModifierOrder"/>
        <module name="RedundantModifier"/>


        <!-- Checks for blocks. You know, those {}'s         -->
        <!-- See http://checkstyle.sf.net/config_blocks.html -->
        <!--
        <module name="AvoidNestedBlocks">
            <property name="allowInSwitchCase" value="true"/>
        </module>
        -->
        <!-- We use alot of emply blocks..  they can be good too.
        <module name="EmptyBlock">
            <property name="option" value="text"/>
        </module>
        -->
        <module name="LeftCurly"/>
        <module name="NeedBraces"/>
        <module name="RightCurly"/>
        
        <!-- 
        <module name="OuterTypeNumber"/>
         -->


        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <!--<module name="ArrayTrailingComma"/>-->
        <!--<module name="AvoidInlineConditionals"/>-->
        <module name="CovariantEquals"/>
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <!--<module name="FinalLocalVariable"/>-->
        <!--
        <module name="HiddenField">
            <property name="ignoreConstructorParameter" value="true"/>
            <property name="ignoreSetter" value="true"/>
        </module>
        -->
        <!-- 
        <module name="EqualsAvoidNull"/>
         -->
        <module name="IllegalInstantiation"/>
        <!--<module name="IllegalToken"/>-->
        <!--<module name="IllegalTokenText"/>-->
        <!--<module name="InnerAssignment"/>-->
        <!--<module name="MagicNumber"/>-->
        <module name="MissingSwitchDefault"/>
        <!--module name="ModifiedControlVariable"/-->
        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>
        <module name="StringLiteralEquality"/>
        <module name="NestedIfDepth">
            <property name="max" value="8"/>
        </module>
        <module name="NestedTryDepth">
            <property name="max" value="8"/>
        </module>
        <!--<module name="SuperClone"/>-->
        <module name="SuperFinalize"/>
        <!--<module name="IllegalCatch"/>-->
    	<module name="IllegalThrows">
      		<property name="illegalClassNames" value="java.lang.Error,java.lang.RuntimeException"/>
    	</module>
        <!--<module name="RedundantThrows"/>-->
        <module name="PackageDeclaration"/>
        <!--
        <module name="JUnitTestCase"/>
        -->
        <module name="ReturnCount">
            <property name="max" value="20"/>
        </module>

        <!-- Um.. we tend to use these alot.. perhaps enable this check later.
        <module name="IllegalType">
            <property name="format" value="^xxx$"/>
            <property name="illegalClassNames" value="java.util.GregorianCalendar, java.util.Hashtable, java.util.HashSet, java.util.HashMap, java.util.ArrayList, java.util.LinkedList, java.util.LinkedHashMap, java.util.LinkedHashSet, java.util.TreeSet, java.util.TreeMap"/> We use alot of emply blocks..  they can be good too.
        </module>
        -->
        <module name="DeclarationOrder"/>
        <!--<module name="ParameterAssignment"/>-->
        <module name="ExplicitInitialization"/>
        <!-- <module name="AnnotationUseStyle"/> -->
        <!-- <module name="MissingDeprecated"/> -->
        <!-- 
		<module name="MissingOverride">
			<property name="javaFiveCompatibility" value="true"/>
		</module>
         -->
         <!-- <module name="PackageAnnotation"/> -->
         <!-- <module name="SuppressWarnings"/> -->
        <module name="DefaultComesLast"/>
        <!--<module name="MissingCtor"/>-->
        <module name="FallThrough"/>
        <!--<module name="MultipleStringLiterals"/>-->
        <module name="MultipleVariableDeclarations"/>
        <!--<module name="RequireThis"/>-->
        <module name="UnnecessaryParentheses"/>



        <!-- Checks for class design                         -->
        <!-- See http://checkstyle.sf.net/config_design.html -->
        <!--<module name="DesignForExtension"/>-->
        <module name="FinalClass"/>
        <module name="HideUtilityClassConstructor"/>
        <!-- We still do enum style interfaces
        <module name="InterfaceIsType"/>
        -->
        <module name="MutableException">
            <property name="format" value="^.*Exception$"/>
        </module>
        <module name="ThrowsCount">
            <property name="max" value="5"/>
        </module>

        <!-- Ah we do a fair bit of using a class like a struct.. so
             we are not so strict on requirin encapsulation
        <module name="VisibilityModifier">
            <property name="protectedAllowed" value="true"/>
            <property name="packageAllowed" value="true"/>
            <property name="publicMemberPattern" value="resource[12].*"/>
        </module>
        -->


        <!-- Metrics checks.                   -->
        <!-- See http://checkstyle.sf.net/config_metrics.html -->
        <module name="BooleanExpressionComplexity">
            <property name="max" value="6"/>
        </module>
        <!--<module name="ClassDataAbstractionCoupling"/>-->
        <!--<module name="ClassFanOutComplexity"/>-->
        <!--<module name="CyclomaticComplexity"/>-->
        <!--<module name="NPathComplexity"/>-->
        <!-- Ah big methods aint so bad! :)
        <module name="JavaNCSS">
            <property name="methodMaximum" value="75"/>
        </module>
        -->


        <!-- Miscellaneous other checks.                   -->
        <!-- See http://checkstyle.sf.net/config_misc.html -->
        <!--
        <module name="ArrayTypeStyle"/>
        <module name="FinalParameters"/>
        -->
        <!--
        <module name="GenericIllegalRegexp">
            <property name="format" value="\s+$"/>
            <property name="message" value="Line has trailing spaces."/>
        </module>
        -->
        <module name="TodoComment">
            <property name="format" value="WARNING"/>
        </module>

        <module name="UpperEll"/>

        <!--Assert statement may have side effects:-->
        <module name="DescendantToken">
            <property name="tokens" value="LITERAL_ASSERT"/>
            <property name="limitedTokens" value="ASSIGN,DEC,INC,POST_DEC,POST_INC,PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,BSR_ASSIGN,SR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN"/>
            <property name="maximumNumber" value="0"/>
        </module>

        <!--<module name="UncommentedMain"/>-->
        <!--module name="TrailingComment"/-->
        <module name="Indentation">
            <property name="lineWrappingIndentation" value="0"/>
            <property name="caseIndent" value="0"/>
        </module>
        <!--<module name="RequiredRegexp">-->
    </module>
    <module name="SuppressionCommentFilter">
        <property name="offCommentFormat" value="CHECKSTYLE\:OFF"/>
        <property name="onCommentFormat" value="CHECKSTYLE\:ON"/>
    </module>
    <module name="SuppressionCommentFilter">
        <property name="offCommentFormat" value="CHECKSTYLE.OFF\:([\w\|]+)"/>
        <property name="onCommentFormat" value="CHECKSTYLE.ON\:([\w\|]+)"/>
        <property name="checkFormat" value="$1"/>
    </module>
</module>
