1   <?xml version="1.0"?>
2   <!DOCTYPE module PUBLIC
3       "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4       "https://checkstyle.org/dtds/configuration_1_3.dtd">
5   
6   <module name="Checker">
7       <!--
8           this config is a copy of
9           https://github.com/checkstyle/checkstyle/blob/master/config/checkstyle_checks.xml
10          with update to global severity=ignore to catch only exceptions.
11  
12          Some other checks are commented out to speed up execution time.
13      -->
14  
15      <metadata name="com.atlas-sw.eclipse" value="I like Sydney"/>
16  
17      <property name="severity" value="ignore"/>
18  
19      <!-- BeforeExecutionFileFilters is required for sources of java9 -->
20      <module name="BeforeExecutionExclusionFileFilter">
21          <property name="fileNamePattern" value="module\-info\.java$" />
22      </module>
23  
24  
25      <property name="fileExtensions" value="java, properties, xml, vm, g, g4, dtd"/>
26  
27      <!-- BeforeExecutionFileFilters is required for sources that are based on java9 -->
28      <module name="BeforeExecutionExclusionFileFilter">
29          <property name="fileNamePattern" value="module\-info\.java$" />
30      </module>
31  
32      <!-- Filters -->
33      <module name="SeverityMatchFilter">
34          <!-- report all violations except ignore -->
35          <property name="severity" value="ignore"/>
36          <property name="acceptOnMatch" value="false"/>
37      </module>
38      <!--     require separate config file
39      <module name="SuppressionFilter">
40        <property name="file" value="${checkstyle.suppressions.file}"/>
41      </module>
42      -->
43      <module name="SuppressWarningsFilter"/>
44  
45      <!-- Headers -->
46      <module name="Header">
47          <!-- require separate config file, so we use default
48          <property name="headerFile" value="${checkstyle.header.file}"/>
49          <property name="fileExtensions" value="java"/>
50          <property name="id" value="header"/>
51          -->
52      </module>
53      <module name="RegexpHeader">
54          <!-- require separate config file, so we use default
55        <property name="headerFile" value="${checkstyle.regexp.header.file}"/>
56        <property name="fileExtensions" value="java"/>
57        -->
58      </module>
59  
60      <!-- Javadoc Comments -->
61      <module name="JavadocPackage">
62          <property name="allowLegacy" value="false"/>
63      </module>
64  
65      <!-- Miscellaneous -->
66      <module name="NewlineAtEndOfFile"/>
67      <module name="Translation">
68          <property name="requiredTranslations" value="de, fr, fi, es, pt, ja, tr, zh"/>
69      </module>
70      <module name="UniqueProperties"/>
71      <module name="OrderedProperties"/>
72  
73      <!-- Regexp -->
74      <!-- we need only one instance of Check
75      <module name="RegexpMultiline"/>
76      -->
77      <module name="RegexpMultiline">
78          <property name="format" value="\r?\n[\t ]*\r?\n[\t ]*\r?\n"/>
79          <property name="fileExtensions" value="java,xml,properties"/>
80          <property name="message" value="Unnecessary consecutive lines"/>
81      </module>
82      <!-- we need only one instance of Check
83      <module name="RegexpMultiline">
84          <property name="format" value="/\*\*\W+\* +\p{javaLowerCase}"/>
85          <property name="fileExtensions" value="java"/>
86          <property name="message" value="First sentence in a comment should start with a capital letter"/>
87      </module>
88      -->
89      <module name="RegexpSingleline">
90          <property name="format" value="\s+$"/>
91          <property name="minimum" value="0"/>
92          <property name="maximum" value="0"/>
93      </module>
94      <!-- we need only one instance of Check
95      <module name="RegexpSingleline">
96          <property name="format" value="/\*\* +\p{javaLowerCase}"/>
97          <property name="fileExtensions" value="java"/>
98          <property name="message" value="First sentence in a comment should start with a capital letter"/>
99      </module>
100     <module name="RegexpSingleline">
101       <property name="format" value="^(?!(.*http|import)).{101,}$"/>
102       <property name="fileExtensions" value="g, g4"/>
103       <property name="message" value="Line should not be longer then 100 symbols"/>
104     </module>
105     -->
106     <module name="RegexpOnFilename" />
107     <!-- we need only one instance of Check
108     <module name="RegexpOnFilename">
109         <property name="folderPattern" value="[\\/]src[\\/]\w+[\\/]java[\\/]"/>
110         <property name="fileNamePattern" value="\.java$"/>
111         <property name="match" value="false"/>
112         <message key="regexp.filepath.mismatch" value="Only java files should be located in the ''src/*/java'' folders."/>
113     </module>
114     <module name="RegexpOnFilename">
115         <property name="folderPattern" value="[\\/]src[\\/]xdocs[\\/]"/>
116         <property name="fileNamePattern" value="\.(xml)|(vm)$"/>
117         <property name="match" value="false"/>
118         <message key="regexp.filepath.mismatch" value="All files in the ''src/xdocs'' folder should have the ''xml'' or ''vm'' extension."/>
119     </module>
120     <module name="RegexpOnFilename">
121         <property name="folderPattern" value="[\\/]src[\\/]it[\\/]java[\\/]"/>
122         <property name="fileNamePattern" value="^((\w+Test)|(Base\w+))\.java$"/>
123         <property name="match" value="false"/>
124         <message key="regexp.filepath.mismatch" value="All files in the ''src/it/java'' folder should be named ''*Test.java'' or ''Base*.java''."/>
125     </module>
126     -->
127 
128     <!-- Size Violations -->
129     <module name="FileLength">
130         <property name="fileExtensions" value="java"/>
131     </module>
132     <module name="LineLength">
133         <property name="fileExtensions" value="java"/>
134         <property name="max" value="100"/>
135         <property name="ignorePattern" value="^ *\* *[^ ]+$"/>
136     </module>
137 
138     <!-- Whitespace -->
139     <module name="FileTabCharacter">
140         <property name="eachLine" value="false"/>
141     </module>
142 
143     <module name="TreeWalker">
144         <property name="tabWidth" value="4"/>
145 
146         <module name="UnusedLocalVariable"/>
147         <module name="UnusedImports"/>
148         <module name="ExecutableStatementCount"/>
149         <module name="Indentation"/>
150 
151     </module>
152 
153 </module>