<?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>
