diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4449e0862613eea5bfcb959beeb54d474283fba6..083c9fb5bc10101fe6b14a3bd635439cd385b95a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,4 +8,4 @@ variables: image: maven:3.5.3-jdk-8 mvn:package: - script: mvn clean package + script: mvn clean verify diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000000000000000000000000000000000000..bb821bb45c2e13b26c128eef1895dcd82a80417d --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,228 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.2//EN" + "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> + +<!-- + Checkstyle configuration based on sun_checks.xml with: + - magic number check is disabled + - hidden field is disabled + - JavadocPackage is disabled + - variables naming is "^[a-z][a-z0-9\_]*$" + + Checkstyle configuration that checks the sun coding conventions from: + + - the Java Language Specification at + http://java.sun.com/docs/books/jls/second_edition/html/index.html + + - the Sun Code Conventions at http://java.sun.com/docs/codeconv/ + + - the Javadoc guidelines at + http://java.sun.com/j2se/javadoc/writingdoccomments/index.html + + - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html + + - some best practices + + Checkstyle is very configurable. Be sure to read the documentation at + http://checkstyle.sf.net (or in your downloaded distribution). + + Most Checks are configurable, be sure to consult the documentation. + To completely disable a check, just comment it out or delete it from the file. + Finally, it is worth reading the documentation. + +--> + +<module name="Checker"> + <!-- + If you set the basedir property below, then all reported file + names will be relative to the specified directory. See + http://checkstyle.sourceforge.net/5.x/config.html#Checker + + <property name="basedir" value="${basedir}"/> + --> + + <!-- Checks that each Java package has a Javadoc file used for commenting. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage --> + <!-- <module name="JavadocPackage"> + <property name="allowLegacy" value="true"/> + </module>--> + + <!-- 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="FileLength"/> + + <!-- Following interprets the header file as regular expressions. --> + <!-- <module name="RegexpHeader"/> --> + + <module name="FileTabCharacter"> + <property name="eachLine" value="true"/> + </module> + + <module name="RegexpSingleline"> + <!-- \s matches whitespace character, $ matches end of line. --> + <property name="format" value="\s+$"/> + <property name="message" value="Line has trailing spaces."/> + </module> + + <module name="TreeWalker"> + + <property name="cacheFile" value="target/checkstyle_cache"/> + + <!-- required for SuppressWarningsFilter (and other Suppress* rules not used here) --> + <!-- see http://checkstyle.sourceforge.net/config_annotation.html#SuppressWarningsHolder --> + <module name="SuppressWarningsHolder"/> + + <!-- Checks for Javadoc comments. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <module name="JavadocMethod"> + <property name="scope" value="public"/> + <property name="allowMissingReturnTag" value="true" /> + <property name="allowMissingParamTags" value="true" /> + </module> + <module name="JavadocType"/> + <module name="JavadocVariable"> + <property name="scope" value="public"/> + </module> + <module name="JavadocStyle"/> + + + <!-- Checks for Naming Conventions. --> + <!-- See http://checkstyle.sf.net/config_naming.html --> + <module name="ConstantName"/> + + <module name="LocalFinalVariableName"> + <property name="format" value="^[a-z][a-z0-9\_]*$"/> + </module> + + <module name="LocalVariableName"> + <property name="format" value="^[a-z][a-z0-9\_]*$"/> + <property name="allowOneCharVarInForLoop" value="true"/> + </module> + + <module name="MemberName"> + <property name="format" value="^[a-z][a-z0-9\_]*$"/> + </module> + + <module name="ParameterName"> + <property name="format" value="^[a-z][a-z0-9\_]*$"/> + </module> + + <!--<module name="CatchParameterName"> + <property name="format" value="^[a-z][a-z0-9\_]+$"/> + </module>--> + + <module name="StaticVariableName"> + <property name="format" value="^[a-z][a-z0-9\_]*$"/> + </module> + + + <module name="MethodName"/> + <module name="PackageName"/> + <module name="TypeName"/> + + + <!-- Checks for Headers --> + <!-- See http://checkstyle.sf.net/config_header.html --> + <!-- <module name="Header"> --> + <!-- The follow property value demonstrates the ability --> + <!-- to have access to ANT properties. In this case it uses --> + <!-- the ${basedir} property to allow Checkstyle to be run --> + <!-- from any directory within a project. See property --> + <!-- expansion, --> + <!-- http://checkstyle.sf.net/config.html#properties --> + <!-- <property --> + <!-- name="headerFile" --> + <!-- value="${basedir}/java.header"/> --> + <!-- </module> --> + + + <!-- Checks for imports --> + <!-- See http://checkstyle.sf.net/config_import.html --> + <module name="AvoidStarImport"/> + <module name="IllegalImport"/> <!-- defaults to sun.* packages --> + <module name="RedundantImport"/> + <module name="UnusedImports"/> + + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <module name="LineLength"/> + <module name="MethodLength"/> + <!--<module name="ParameterNumber"/>--> + + + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="EmptyForIteratorPad"/> + <module name="MethodParamPad"/> + <module name="NoWhitespaceAfter"/> + <module name="NoWhitespaceBefore"/> + <module name="OperatorWrap"/> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <module name="WhitespaceAfter"/> + <module name="WhitespaceAround"/> + + + <!-- 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"/> + <module name="EmptyBlock"/> + <module name="LeftCurly"/> + <module name="NeedBraces"/> + <module name="RightCurly"/> + + + <!-- Checks for common coding problems --> + <!-- See http://checkstyle.sf.net/config_coding.html --> + <module name="AvoidInlineConditionals"/> + <module name="EmptyStatement"/> + <module name="EqualsHashCode"/> + <!-- <module name="HiddenField"/> --> + <module name="IllegalInstantiation"/> + <module name="InnerAssignment"/> + <!-- <module name="MagicNumber"/> --> + <module name="MissingSwitchDefault"/> + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + + <!-- 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="VisibilityModifier"/> + + + <!-- Miscellaneous other checks. --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <module name="ArrayTypeStyle"/> + <module name="FinalParameters"/> + <module name="TodoComment"/> + <module name="UpperEll"/> + + </module> + + <!-- Support @SuppressWarnings (added in Checkstyle 5.7) --> + <!-- see http://checkstyle.sourceforge.net/config.html#SuppressWarningsFilter --> + <module name="SuppressWarningsFilter"/> + + <!-- Checks properties file for a duplicated properties. --> + <!-- See http://checkstyle.sourceforge.net/config_misc.html#UniqueProperties --> + <module name="UniqueProperties"/> + +</module> diff --git a/pom.xml b/pom.xml index 2ea5a9315555c278b71cf80782db88b73129bad7..218428fdf8d2b3ad41a4a484cc4d4ec629737a66 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,31 @@ <scope>test</scope> </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.16</version> + <executions> + <execution> + <id>validate</id> + <phase>verify</phase> + <configuration> + <configLocation>checkstyle.xml</configLocation> + <encoding>UTF-8</encoding> + <consoleOutput>true</consoleOutput> + <linkXRef>false</linkXRef> + </configuration> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + </build> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> diff --git a/src/main/java/be/cylab/java/wowa/training/Example.java b/src/main/java/be/cylab/java/wowa/training/Example.java index 2ee2945e6d32a08baede56ca09bf07fb1ead722f..d896d3b4ba8c00a4d56ae654245580201ab25127 100644 --- a/src/main/java/be/cylab/java/wowa/training/Example.java +++ b/src/main/java/be/cylab/java/wowa/training/Example.java @@ -1,8 +1,4 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ + package be.cylab.java.wowa.training; /** @@ -10,5 +6,5 @@ package be.cylab.java.wowa.training; * @author tibo */ public class Example { - + } diff --git a/src/test/java/be/cylab/java/wowa/training/ExampleTest.java b/src/test/java/be/cylab/java/wowa/training/ExampleTest.java index fb5c2fa21ea0fc840a6d9d25d024d69a1ad13af5..38bc1edc9113bef70ce0ff5b048e78073e1f47b9 100644 --- a/src/test/java/be/cylab/java/wowa/training/ExampleTest.java +++ b/src/test/java/be/cylab/java/wowa/training/ExampleTest.java @@ -1,15 +1,8 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ + package be.cylab.java.wowa.training; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; /**