Skip to content

Commit

Permalink
chore: include configuration
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <otaviopolianasantana@gmail.com>
  • Loading branch information
otaviojava committed Sep 30, 2024
1 parent d68a8d5 commit b380214
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 0 deletions.
30 changes: 30 additions & 0 deletions chapter-04/pmd/pmd-rules.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0"?>

<!--
This file is uploaded to https://nexus.cicd.portit.io/#browse/upload:portit-webapps (`/pmd-ruleset/` dir)
and then referenced by URL https://nexus.cicd.portit.io/repository/portit-webapps/pmd-ruleset/pmd-ruleset.xml
-->
<ruleset name="Custom Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>Remove rules</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="GuardLogStatement" />
<exclude name="AbstractClassWithoutAbstractMethod" />
<exclude name="JUnitTestsShouldIncludeAssert" />
</rule>
<rule ref="category/java/codestyle.xml">
<exclude name="LongVariable" />
<exclude name="MethodArgumentCouldBeFinal" />
<exclude name="ShortMethodName" />
<exclude name="ShortVariable" />
<exclude name="AtLeastOneConstructor" />
<exclude name="LocalVariableCouldBeFinal" />
<exclude name="UseExplicitTypes" />
<exclude name="OnlyOneReturn" />
</rule>
<rule ref="category/java/security.xml" />
<rule ref="category/java/performance.xml" />

</ruleset>
46 changes: 46 additions & 0 deletions chapter-04/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
<maven.surefire.plugin.version>2.22.2</maven.surefire.plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.vesion>3.3.0</maven-javadoc-plugin.vesion>
<maven.checkstyle.plugin.version>3.4.0</maven.checkstyle.plugin.version>
<apache.pdm.plugin.version>3.24.0</apache.pdm.plugin.version>
<checkstyle.excludes></checkstyle.excludes>
</properties>

<dependencies>
Expand Down Expand Up @@ -99,6 +102,49 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.plugin.version}</version>
<executions>
<execution>
<id>verify-style</id>
<phase>process-classes</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>**/module-info.java,${checkstyle.excludes}</excludes>
<logViolationsToConsole>true</logViolationsToConsole>
<consoleOutput>true</consoleOutput>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${apache.pdm.plugin.version}</version>
<configuration>
<rulesets>
<ruleset>pmd/bestpractices.xml</ruleset>
<ruleset>pmd/codestyle.xml</ruleset>
<ruleset>/category/java/security.xml</ruleset>
<ruleset>/category/java/performance.xml</ruleset>
</rulesets>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
96 changes: 96 additions & 0 deletions chapter-04/src/main/resources/checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">

<module name="FileLength">
<property name="max" value="3500"/>
<property name="fileExtensions" value="java"/>
</module>

<module name="LineLength">
<property name="max" value="180"/>
<property name="ignorePattern" value="@version|@see"/>
</module>

<module name="FileTabCharacter"/>

<module name="TreeWalker">
<module name="SuppressionCommentFilter"/>
<module name="ConstantName">
<property name="format" value="^(_?[a-z][a-zA-Z0-9]*|([A-Z](_?[A-Z0-9]+)*))$"/>
</module>

<module name="LocalVariableName"/>
<module name="MethodName">
<property name="format" value="^_?[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="PackageName"/>
<module name="LocalFinalVariableName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName">
<property name="format" value="^_?[A-Z][a-zA-Z0-9]*$"/>
</module>

<module name="AvoidStarImport">
<property name="excludes"
value="java.io,java.net,java.util,jakarta.enterprise.inject.spi,jakarta.enterprise.context"/>
</module>
<module name="IllegalImport"/>
<module name="RedundantImport"/>
<module name="UnusedImports"/>

<module name="MethodLength">
<property name="max" value="250"/>
</module>
<module name="ParameterNumber">
<property name="max" value="15"/>
</module>

<module name="EmptyBlock">
<property name="option" value="text"/>
</module>

<module name="NeedBraces">
<property name="tokens"
value="LITERAL_DO, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE"/>
</module>
<module name="LeftCurly">
<property name="option" value="EOL"/>
</module>
<module name="RightCurly">
<property name="option" value="SAME"/>
</module>

<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="DefaultComesLast"/>
<module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="MultipleVariableDeclarations"/>

<module name="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
<property name="severity" value="ignore"/>
</module>

<module name="HideUtilityClassConstructor"/>

<module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
<property name="packageAllowed" value="false"/>
<property name="protectedAllowed" value="true"/>
<property name="publicMemberPattern" value="^serialVersionUID"/>
<property name="severity" value="warning"/>
</module>

<module name="UpperEll"/>

<module name="AnnotationLocation">
<property name="allowSamelineMultipleAnnotations" value="false"/>
<property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
<property name="allowSamelineParameterizedAnnotation" value="false"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, ANNOTATION_DEF"/>
</module>
</module>
</module>

0 comments on commit b380214

Please sign in to comment.