<?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">
	<property name="severity" value="error"/>

	<!-- 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" />
		<module name="MethodName" />
		<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="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="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 name="SuppressWarningsHolder" />
	</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 name="SuppressWarningsFilter"/>
	<module name="SuppressionFilter">
		<property name="file" value="${checkstyle.suppressions.file}" />
	</module>
	<!-- 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>
