<?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 CXF coding guidelines which 
	are similar to the Sun guidelines at:
	http://java.sun.com/docs/codeconv/index.html
	
	It also enforces aa 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"/>-->

	<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">
            <property name="format"
                      value="^[a-z_][a-zA-Z0-9_]*$"/>
        </module>
		<module name="MethodName">
            <property name="format"
                      value="^[a-z_][a-zA-Z0-9_]*$"/>
        </module>
		<module name="PackageName" />
		<module name="ParameterName" />
		<module name="StaticVariableName" />
		<module name="TypeName" />

		<!-- 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" />
		</module>
		<module name="IllegalImport" /><!-- defaults to sun.* packages -->
		<module name="RedundantImport" />
		<module name="UnusedImports" />
		<module name="ImportOrder">
			<property name="groups"
				value="java,javax,org.w3c,org.xml,junit,antlr,com,net,org,*" />
			<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="40" />
		</module>
		<module name="ExecutableStatementCount">
			<property name="max" value="75" />
		</module>
		<module name="LineLength">
			<property name="max" value="120" />
		</module>
		<module name="MethodLength">
			<property name="max" value="150" />
			<property name="countEmpty" value="false" />
		</module>
		<module name="ParameterNumber">
			<property name="max" value="7" />
            <property name="ignoreOverriddenMethods" value="true"/>
		</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, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND" />
		</module>


		<!-- 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>
		<module name="EmptyBlock">
			<property name="option" value="text" />
		</module>
		<module name="LeftCurly" />
		<module name="NeedBraces" />
		<module name="RightCurly" />


		<!-- 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="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="3" />
		</module>
		<module name="NestedTryDepth">
			<property name="max" value="3" />
		</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="ReturnCount">
			<property name="max" value="6" />
		</module>

		<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" />
		</module>
		<module name="DeclarationOrder" />
		<!--<module name="ParameterAssignment"/>-->
		<module name="ExplicitInitialization" />
		<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" />
		<module name="InterfaceIsType" />
		<!--<module name="MutableException"/>-->
		<module name="ThrowsCount">
			<property name="max" value="5" />
		</module>
		<module name="VisibilityModifier">
			<property name="protectedAllowed" value="true" />
			<property name="packageAllowed" value="true" />
			<!-- this is needed for the resource injection unit tests.  It will removed 
				when private member inject is supported.
			-->
			<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"/>-->
		<module name="JavaNCSS">
			<property name="methodMaximum" value="100" />
		</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="caseIndent" value="0" />
            <property name="lineWrappingIndentation" value="0"/>
		</module>
		<!--<module name="RequiredRegexp">-->
	</module>
    <module name="SuppressionCommentFilter"/>
    <!-- Header checks -->
    <module name="Header">
      <property name="header"
                value="/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * &quot;License&quot;); you may not use this file except in compliance\n * with 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,\n * software distributed under the License is distributed on an\n * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n" />
    </module>
    <!-- <module name="RegexpHeader"/> -->
    <module name="FileLength">
      <property name="max" value="3000" />
    </module>
    <module name="FileTabCharacter">
      <property name="eachLine" value="true"/>
    </module>
</module>
