Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Coding Standard Adherence with Checkstyle #125

Merged
merged 4 commits into from
May 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions config/checkstyle/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN" "https://checkstyle.org/dtds/suppressions_1_0.dtd">

<suppressions>
<suppress checks="JavadocPackage" files="."/>
<suppress checks="HideUtilityClassConstructor" files="."/>
<suppress checks="JavadocType" files="."/>
<suppress checks="JavadocMethod" files="."/>
<suppress checks="JavadocVariable" files="."/>
</suppressions>
199 changes: 199 additions & 0 deletions config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--

Checkstyle configuration that checks the sun coding conventions from:

- the Java Language Specification at
https://docs.oracle.com/javase/specs/jls/se11/html/index.html

- the Sun Code Conventions at https://www.oracle.com/java/technologies/javase/codeconventions-contents.html

- the Javadoc guidelines at
https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html

- the JDK Api documentation https://docs.oracle.com/en/java/javase/11/

- some best practices

Checkstyle is very configurable. Be sure to read the documentation at
https://checkstyle.org (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.
To suppress certain violations please review suppression filters.

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
https://checkstyle.org/config.html#Checker

<property name="basedir" value="${basedir}"/>
-->
<property name="severity" value="error"/>

<property name="fileExtensions" value="java, properties, xml"/>

<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/filefilters/index.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>

<!-- https://checkstyle.org/filters/suppressionfilter.html -->
<module name="SuppressionFilter">
<property name="file" value="${org.checkstyle.sun.suppressionfilter.config}"
default="checkstyle-suppressions.xml" />
<property name="optional" value="true"/>
</module>

<!-- Checks that a package-info.java file exists for each package. -->
<!-- See https://checkstyle.org/checks/javadoc/javadocpackage.html#JavadocPackage -->
<module name="JavadocPackage"/>

<!-- Checks whether files end with a new line. -->
<!-- See https://checkstyle.org/checks/misc/newlineatendoffile.html -->
<module name="NewlineAtEndOfFile"/>

<!-- Checks that property files contain the same keys. -->
<!-- See https://checkstyle.org/checks/misc/translation.html -->
<module name="Translation"/>

<!-- Checks for Size Violations. -->
<!-- See https://checkstyle.org/checks/sizes/index.html -->
<module name="FileLength"/>
<module name="LineLength">
<property name="fileExtensions" value="java"/>
<property name="max" value="120"/>
</module>

<!-- Checks for whitespace -->
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
<module name="FileTabCharacter"/>

<!-- Miscellaneous other checks. -->
<!-- See https://checkstyle.org/checks/misc/index.html -->
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Line has trailing spaces."/>
</module>

<!-- Checks for Headers -->
<!-- See https://checkstyle.org/checks/header/index.html -->
<!-- <module name="Header"> -->
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
<!-- <property name="fileExtensions" value="java"/> -->
<!-- </module> -->

<module name="TreeWalker">

<!-- Checks for Javadoc comments. -->
<!-- See https://checkstyle.org/checks/javadoc/index.html -->
<module name="InvalidJavadocPosition"/>
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
<module name="JavadocStyle"/>
<module name="MissingJavadocMethod"/>

<!-- Checks for Naming Conventions. -->
<!-- See https://checkstyle.org/checks/naming/index.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 https://checkstyle.org/checks/imports/index.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports">
<property name="processJavadoc" value="false"/>
</module>

<!-- Checks for Size Violations. -->
<!-- See https://checkstyle.org/checks/sizes/index.html -->
<module name="MethodLength"/>
<module name="ParameterNumber"/>

<!-- Checks for whitespace -->
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
<module name="EmptyForIteratorPad"/>
<module name="GenericWhitespace"/>
<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 https://checkstyle.org/checks/modifier/index.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>

<!-- Checks for blocks. You know, those {}'s -->
<!-- See https://checkstyle.org/checks/blocks/index.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>

<!-- Checks for common coding problems -->
<!-- See https://checkstyle.org/checks/coding/index.html -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField"/>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber"/>
<module name="MissingSwitchDefault"/>
<module name="MultipleVariableDeclarations"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>

<!-- Checks for class design -->
<!-- See https://checkstyle.org/checks/design/index.html -->
<module name="DesignForExtension"/>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier"/>

<!-- Miscellaneous other checks. -->
<!-- See https://checkstyle.org/checks/misc/index.html -->
<module name="ArrayTypeStyle"/>
<module name="FinalParameters"/>
<module name="TodoComment"/>
<module name="UpperEll"/>

<!-- https://checkstyle.org/filters/suppressionxpathfilter.html -->
<module name="SuppressionXpathFilter">
<property name="file" value="${org.checkstyle.sun.suppressionxpathfilter.config}"
default="checkstyle-xpath-suppressions.xml" />
<property name="optional" value="true"/>
</module>

</module>

</module>
41 changes: 32 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,38 @@
</profiles>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<configLocation>config/checkstyle/checkstyle.xml</configLocation>
<suppressionsLocation>config/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
<executions>
<execution>
<id>lint-check</id>
<phase>validate</phase>
<configuration>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

<properties>
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/co/novu/api/blueprints/BlueprintsHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@

import java.io.IOException;

public class BlueprintsHandler {
public final class BlueprintsHandler {

private final RestHandler restHandler;

private final BlueprintsApi blueprintsApi;

public BlueprintsHandler(RestHandler restHandler) {
this.restHandler = restHandler;
this.blueprintsApi = restHandler.buildRetrofit().create(BlueprintsApi.class);
public BlueprintsHandler(final RestHandler handler) {
this.restHandler = handler;
this.blueprintsApi = handler.buildRetrofit().create(BlueprintsApi.class);
}

public BlueprintsByCategoryResponse getBlueprintsByCategory() throws IOException, NovuNetworkException {
Response<BlueprintsByCategoryResponse> response = blueprintsApi.getBlueprintsByCategory().execute();
return restHandler.extractResponse(response);
}

public Blueprint getBlueprint(String templateId) throws IOException, NovuNetworkException {
public Blueprint getBlueprint(final String templateId) throws IOException, NovuNetworkException {
Response<Blueprint> response = blueprintsApi.getBlueprint(templateId).execute();
return restHandler.extractResponse(response);
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Blueprint.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ public class Blueprint {
@SerializedName("__v")
private Long version;
private NotificationGroup notificationGroup;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Content.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ public class Content {
private String type;
private String content;
private Styles styles;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Filters.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ public class Filters {
private List<String> children;
@SerializedName("_id")
private String id;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/General.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
public class General {
private String name;
private List<Blueprint> blueprints;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Metadata.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
@Data
public class Metadata {
private Timed timed;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Popular.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
public class Popular {
private String name;
private List<Blueprint> blueprints;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Styles.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
@Data
public class Styles {
private String textAlign;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Template.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ public class Template {
private String updatedAt;
@SerializedName("__v")
private Long version;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Timed.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
public class Timed {
private List<String> weekDays;
private List<String> monthDays;
}
}
2 changes: 1 addition & 1 deletion src/main/java/co/novu/api/blueprints/pojos/Variables.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ public class Variables {
private String type;
private Boolean required;
private String id;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
@Data
public class BlueprintsByCategoryResponse {
private BlueprintsResponseData data;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package co.novu.api.blueprints.responses;

import co.novu.api.blueprints.pojos.General;
import co.novu.api.blueprints.pojos.Popular;
import lombok.Data;
Expand All @@ -9,4 +10,4 @@
public class BlueprintsResponseData {
private List<General> general;
private Popular popular;
}
}
Loading
Loading