diff --git a/.gitignore b/.gitignore index 7933d63..0ba5348 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ *.ear *.zip +pom.xml.versionsBackup + # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c50d110 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".travis-support"] + path = .travis-support + url = https://github.com/kemitix/kemitix-travis-support.git diff --git a/.travis-support b/.travis-support new file mode 160000 index 0000000..b8593e5 --- /dev/null +++ b/.travis-support @@ -0,0 +1 @@ +Subproject commit b8593e541ba9a11447fa9559a83e5f99097ca4d2 diff --git a/.travis.yml b/.travis.yml index d43d3d8..0d1d54a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,11 +7,12 @@ cache: install: true script: "./mvnw clean install" after_success: -- "./travis-ci/travis-coveralls-report.sh" +- sh .travis-support/coveralls.sh - bash <(curl -s https://codecov.io/bash) -- "./travis-ci/travis-deploy.sh" +deploy: + provider: script + script: sh .travis-support/deploy.sh + on: + branch: master env: global: - - secure: Aq+1PsvZoRPi4/yvKfF9b7PFPb6BGwjBKwva3nJznT7yDO7H2QjpZEs8csvnobdNf5zCdSJGifcxhQjKpwD1YF5Y3Szw9bSFBE0UsNmuJY0Ls92fqSwEJmfs81gEs2VLgdXTP1jt4t2hzjyY77C1t3wQYjLebZ25tza2N6cl8xQDL9uq35kdgfE3oy/Alws7Kgf2rO7N5BibKTIau0a4qcRJIIOK/2/8hhCt/9ER9SgDwwmNeicfDQ9afau90ONqoKszhIiiOY3m2ml8UiZTCATTYr8FsiEd704sMWiWiwXoH1gCII8YZAvBv7gh2ZY6PC/BOaaqXpA3BULOFX2ROtauLFnFJANXUL7lHaclzXMjf/hLQBWgFeYomud1f7zaN4uS2ow+PdgMGeeh8qAv9Iri5u6+hS3sm4XPyIkFK9mlnLLVMDEtZkZZf4+YzyUp0Fxk02ShfBdjTvfWo7A1+RFuR+gy5lIYpqhof1AHEKiINFvs7mgmQarvNVbm+qT19vHwhvE5umovWw+k1vykO3/ulzE6u36aeNGpqCzEXmDRbxzmigDsQA0hMuiiaLcS7uh2YrSkG8N96Pd07U0DqiaCrTB7zqaBmCfMlLtdd2pJMyQXLksyxaGbxTcgC13s2ROUfuOzk40sA0nByILveht+NqrCxlYcwitWi/8ITZU= - - secure: fyBNtzMfKiERJWfvfSPr6jk/TKwHIM3H7EAjtr2SY18cyLz/oHVxp99x2pOkyZz5RVtMapmbKIil0eXP3+Ws2YqOTYHNPBCLNVSmkgBzB4NLiOYWE91OytFVDxeotRT++NvEkWXSjnFtfhpBw1UEfWyP/lkdA+qeOQwfh66mUydQ1Ic3xt/88GGvZwhuNk5fWW0UmlIQY5g7QnLZKf24w4vkkhhswDieNPUvNDjpv1ZamvTYYB8dhtzWmwOY6pTrEOXlFg7g8pgFA5IQHSeFSPKZEMdERkffeN5acXDA6cUsinzuwHcJ7ASlmbw2jWLwwyZFIDI+qDpJ1qK9XBg9eHNMiDlM9FMeEsHOy2CeFytnvVcJEhFlqdWeH8lIa1jNO8p4+5njJI1/kIjVXIzihuljYgenbGxhPZ+gyD1YtmFdu2zt3MLIhysdc92CCR+W46QPLWpI2tufaPm7lQ65/hLReNF6uS+EAi9d45kfczizDpCOn+oqxEYe5zLsZB0Di3zj3cEHxBqq46ROKuLCeXGnREro5H2YTz+HPOI7KVyYF+nvlEproGfcLImH9sxCQFaYXAU5Bv5fgOFa1qmMN3Ku+oMsmuo6LIJPclxcRjT7iy1Qxokgqe9A+fQEMhM24URndxjd8nu444taSm5/xxxF04gxM/Zk07/WXxNfuGo= - - secure: RYNyODJtcTu/A2pWOLGOfrcR3aiqFUpKk8NqScHlEX1uB1XoRlXl2EoXwD+8v4CPdTkEisz1cPUwFGMI+aq5qCN724Hyefvon5RV1bqbntDzbt8uaOaCVb2V0yXsrRXM4HHhbmEjZWlvZJtxf2Un9yxCOly3VOZh9UUMv/8sf+lp5ijOzFlLbcOXc5d+DbqhuuP7rypp34OXnDV6jo4qaeEbcucruo9ZS1kQ4vRKWQSpDCOuxYOaYF2lS2T3LNnrfhH/fXgwx1K/oSytwVZAw2Qcx+5m0A9lwB4c6Cn3BiJUv7QaCduWXhoMxudXh1spT6WzGFw8HqypmvfLt2+DQtUOKFlJz76Q8w+GpwJCtzbXNd6KHqIeL3o3Tq48FViB06aN4NceaFyj3POM+QEkozNao+DguKVaB5gzOFmPTC8QCf8U/2HRfyw2/2tAgK27loaolXumCg/yfvr0vPsX6B3dAAC2gbWemaiZxkue/Wivkx+3dRJvutcHBs/dkhvxL6nkOW4rY79dHcnl33Lmyf5UWkkoNkrcT4r+1eXYB5nRAkAnwVK8xlpMVTQNB6b2TXnrvqhoi2wTbWNyu0rSTDifgY1NTYGqA0w5hlZtUi7xqxa/i8qBvOJXX4wrvCL8JCDEvzzqJ4MJ6Ajwi67TVPjf8vb8nMW1hETDeuJ20jY= diff --git a/CHANGELOG b/CHANGELOG index ef8fa5e..39bc793 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,17 @@ CHANGELOG ========= +3.4.0 +----- + +* Disable Header check +* Remove requirement for `@author` in Type Javadoc +* Disable AvoidStarImport check +* Disable AvoidStaticImport check +* Disable JavadocPackage check +* Upgrade `checkstyle` to 8.7 +* Upgrade `sevntu-checkstyle` to 1.26.0 + 3.3.0 ----- diff --git a/builder/pom.xml b/builder/pom.xml index 1581267..b5b8c7a 100644 --- a/builder/pom.xml +++ b/builder/pom.xml @@ -6,32 +6,60 @@ net.kemitix - kemitix-checkstyle-ruleset-parent - 3.3.0 + kemitix-parent + 5.0.3 + - kemitix-checkstyle-ruleset-builder + net.kemitix.checkstyle + ruleset-builder jar + 3.4.0 - Kemitix Checkstyle :: Ruleset :: Builder - Builder for the Kemitix Checkstyle Ruleset + + 1.8 + 2.10 + 0.2.0 - - https://github.com/kemitix/kemitix-checkstyle-ruleset/issues - GitHub Issues - + 8.7 + 1.26.0 + 1.16.18 + Brussels-SR6 + 1.5.9.RELEASE + 2.3.5 + 1.0.0 + 2.13.0 + 3.9.0 + - - https://github.com/kemitix/kemitix-checkstyle-ruleset - scm:git:git://github.com/kemitix/kemitix-checkstyle-ruleset.git - scm:git:git@github.com:kemitix/kemitix-checkstyle-ruleset.git - - - https://github.com/kemitix/kemitix-checkstyle-ruleset - - 2016 + + + + io.spring.platform + platform-bom + ${spring-platform.version} + pom + import + + + + + org.projectlombok + lombok + ${lombok.version} + + + org.mockito + mockito-core + ${mockito.version} + + + org.assertj + assertj-core + ${assertj.version} + org.springframework.boot spring-boot-starter @@ -54,6 +82,7 @@ com.speedment.common mapstream + ${mapstream.version} org.springframework.boot @@ -63,21 +92,43 @@ me.andrz map-builder + ${map-builder.version} test com.puppycrawl.tools checkstyle + ${checkstyle.version} com.github.sevntu-checkstyle sevntu-checks + ${sevntu.version} + + io.repaint.maven + tiles-maven-plugin + ${tiles-maven-plugin.version} + true + + + net.kemitix.tiles:maven-plugins-tile:${kemitix-tiles.version} + net.kemitix.tiles:enforcer-tile:${kemitix-tiles.version} + net.kemitix.tiles:compiler-tile:${kemitix-tiles.version} + + net.kemitix.tiles:huntbugs-tile:${kemitix-tiles.version} + net.kemitix.tiles:pmd-tile:${kemitix-tiles.version} + net.kemitix.tiles:testing-tile:${kemitix-tiles.version} + net.kemitix.tiles:coverage-tile:${kemitix-tiles.version} + net.kemitix.tiles:pitest-tile:${kemitix-tiles.version} + + + org.springframework.boot spring-boot-maven-plugin @@ -88,18 +139,11 @@ - - repackage - + repackage - - org.eluder.coveralls - coveralls-maven-plugin - ${coveralls-maven-plugin.version} - diff --git a/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriter.java b/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriter.java index 95a5a04..5c9e137 100644 --- a/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriter.java +++ b/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriter.java @@ -22,7 +22,6 @@ package net.kemitix.checkstyle.ruleset.builder; import com.speedment.common.mapstream.MapStream; -import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import lombok.val; @@ -58,13 +57,13 @@ class CheckstyleWriter implements CommandLineRunner { private final RuleClassLocator ruleClassLocator; @Override - public void run(final String... args) throws Exception { + public void run(final String... args) { Stream.of(RuleLevel.values()) .filter(level -> !level.equals(RuleLevel.UNSPECIFIED)) .forEach(this::writeCheckstyleFile); } - private void writeCheckstyleFile(@NonNull final RuleLevel ruleLevel) { + private void writeCheckstyleFile(final RuleLevel ruleLevel) { val xmlFile = outputProperties.getDirectory() .resolve(outputProperties.getRulesetFiles() .get(ruleLevel)); diff --git a/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocator.java b/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocator.java index 6a91c6b..0df04a6 100644 --- a/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocator.java +++ b/builder/src/main/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocator.java @@ -28,6 +28,7 @@ import javax.annotation.PostConstruct; import java.util.AbstractMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -62,6 +63,7 @@ public class DefaultRuleClassLocator implements RuleClassLocator { } private String getCanonicalClassName(final RuleSource source, final String name) { + Objects.requireNonNull(checkClasses, "init() method not called"); return checkClasses.get(source) .stream() .sorted() diff --git a/builder/src/main/resources/application.yml b/builder/src/main/resources/application.yml index b6f3195..5920a78 100644 --- a/builder/src/main/resources/application.yml +++ b/builder/src/main/resources/application.yml @@ -101,14 +101,14 @@ rules: name: AvoidStarImport parent: TREEWALKER level: LAYOUT - enabled: true + enabled: false source: CHECKSTYLE uri: http://checkstyle.sourceforge.net/config_imports.html#AvoidStarImport - name: AvoidStaticImport parent: TREEWALKER level: COMPLEXITY - enabled: true + enabled: false source: CHECKSTYLE uri: http://checkstyle.sourceforge.net/config_imports.html#AvoidStaticImport properties: @@ -324,7 +324,7 @@ rules: name: Header parent: CHECKER level: LAYOUT - enabled: true + enabled: false source: CHECKSTYLE uri: http://checkstyle.sourceforge.net/config_header.html#Header properties: @@ -427,7 +427,7 @@ rules: name: JavadocPackage parent: CHECKER level: JAVADOC - enabled: true + enabled: false source: CHECKSTYLE uri: http://checkstyle.sourceforge.net/config_javadoc.html#JavadocPackage - @@ -451,8 +451,6 @@ rules: enabled: true source: CHECKSTYLE uri: http://checkstyle.sourceforge.net/config_javadoc.html#JavadocType - properties: - authorFormat: ^.+ (\S+@[\S.]+)$ - name: JavaNCSS parent: TREEWALKER diff --git a/builder/src/main/resources/rules/JavadocType.md b/builder/src/main/resources/rules/JavadocType.md index 982268a..100a1f0 100644 --- a/builder/src/main/resources/rules/JavadocType.md +++ b/builder/src/main/resources/rules/JavadocType.md @@ -1,2 +1,2 @@ -Checks the format for Javadoc for classes and enums. Javadoc must be present, not have any unknown tags and not missing any `@param` tags. The `@author` tag must have a name and, in brackets, an email address. +Checks the format for Javadoc for classes and enums. Javadoc must be present, not have any unknown tags and not missing any `@param` tags. diff --git a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriterTest.java b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriterTest.java index 9f057ff..a5ca9e0 100644 --- a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriterTest.java +++ b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/CheckstyleWriterTest.java @@ -7,8 +7,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -24,6 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; /** * Tests for {@link CheckstyleWriter}. @@ -58,12 +57,10 @@ public class CheckstyleWriterTest { private Path outputDirectory; - @Mock - private RuleClassLocator ruleClassLocator; + private RuleClassLocator ruleClassLocator = mock(RuleClassLocator.class); @Before public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); ruleName = "RegexpOnFilename"; ruleClassname = "com.puppycrawl.tools.checkstyle.checks.regexp.RegexpOnFilenameCheck"; outputProperties = new OutputProperties(); @@ -90,7 +87,7 @@ public class CheckstyleWriterTest { given(ruleClassLocator.apply(any())).willReturn(ruleClassname); } - private Map.Entry getOutputFile(final RuleLevel level) throws IOException { + private Map.Entry getOutputFile(final RuleLevel level) { final String xmlFile = String.format("checkstyle-%s.xml", level.toString()); return new AbstractMap.SimpleImmutableEntry<>(level, xmlFile); } @@ -202,7 +199,7 @@ public class CheckstyleWriterTest { // throw RTE if template not found @Test - public void throwRteIfTemplateNotFound() throws Exception { + public void throwRteIfTemplateNotFound() { //given templateProperties.setCheckstyleXml(Paths.get("garbage")); //when @@ -214,7 +211,7 @@ public class CheckstyleWriterTest { // throw RTE if error writing file @Test - public void throwRteIfErrorWritingFile() throws Exception { + public void throwRteIfErrorWritingFile() { //given final String imaginary = String.join(FILE_SEPARATOR, "", "..", "imaginary"); outputProperties.setDirectory(Paths.get(imaginary)); diff --git a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocatorTest.java b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocatorTest.java index e8ea62a..a342ae6 100644 --- a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocatorTest.java +++ b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/DefaultRuleClassLocatorTest.java @@ -2,14 +2,15 @@ package net.kemitix.checkstyle.ruleset.builder; import org.junit.Before; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import java.util.Collections; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatNullPointerException; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; /** * Tests for {@link DefaultRuleClassLocator}. @@ -20,17 +21,15 @@ public class DefaultRuleClassLocatorTest { private DefaultRuleClassLocator subject; - @Mock - private PackageScanner packageScanner; + private PackageScanner packageScanner = mock(PackageScanner.class); @Before public void setUp() { - MockitoAnnotations.initMocks(this); subject = new DefaultRuleClassLocator(packageScanner); } @Test - public void canLookupRule() { + public void canLookupRuleWithClassNameEndingInCheck() { //given final String rulename = "RegexpOnFilename"; final String expected = "com.puppycrawl.tools.checkstyle.checks.regexp.RegexpOnFilenameCheck"; @@ -46,6 +45,47 @@ public class DefaultRuleClassLocatorTest { assertThat(result).isEqualTo(expected); } + @Test + public void canLookupRuleWithClassNameMatchingRuleName() { + //given + final String rulename = "RegexpOnFilename"; + final String expected = "com.puppycrawl.tools.checkstyle.checks.regexp.RegexpOnFilename"; + final List checkstyleClasses = Collections.singletonList(expected); + final List sevntuClasses = Collections.emptyList(); + given(packageScanner.apply(RuleSource.CHECKSTYLE)).willReturn(checkstyleClasses.stream()); + given(packageScanner.apply(RuleSource.SEVNTU)).willReturn(sevntuClasses.stream()); + subject.init(); + final Rule rule = createCheckstyleRule(rulename); + //when + final String result = subject.apply(rule); + //then + assertThat(result).isEqualTo(expected); + } + + @Test + public void throwsExceptionWhenCheckstyleClassNotFound() { + //given + final String rulename = "RegexpOnFilename"; + final String expected = "com.puppycrawl.tools.checkstyle.checks.regexp.RegexpOnFilenameNoMatch"; + final List checkstyleClasses = Collections.singletonList(expected); + final List sevntuClasses = Collections.emptyList(); + given(packageScanner.apply(RuleSource.CHECKSTYLE)).willReturn(checkstyleClasses.stream()); + given(packageScanner.apply(RuleSource.SEVNTU)).willReturn(sevntuClasses.stream()); + subject.init(); + final Rule rule = createCheckstyleRule(rulename); + //then + assertThatThrownBy(() -> subject.apply(rule)) + .isInstanceOf(CheckstyleClassNotFoundException.class) + .hasMessage("No class found to implement RegexpOnFilename"); + } + + @Test + public void throwsNullPointerExceptionWhenInitNotCalled() { + assertThatNullPointerException() + .isThrownBy(() -> subject.apply(new Rule())) + .withMessage("init() method not called"); + } + private Rule createCheckstyleRule(final String rulename) { final Rule rule = new Rule(); rule.setSource(RuleSource.CHECKSTYLE); diff --git a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RuleLevelTest.java b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RuleLevelTest.java new file mode 100644 index 0000000..fce27f6 --- /dev/null +++ b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RuleLevelTest.java @@ -0,0 +1,25 @@ +package net.kemitix.checkstyle.ruleset.builder; + +import org.junit.Test; + +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; + +public class RuleLevelTest { + + private final String[] ruleLevelStrings = + {"DISABLED", "LAYOUT", "NAMING", "JAVADOC", "TWEAKS", "COMPLEXITY", "UNSPECIFIED"}; + + @Test + public void valuesToString() { + assertThat(Stream.of(RuleLevel.values()) + .map(RuleLevel::toString)).containsExactly(ruleLevelStrings); + } + + @Test + public void stringValueOf() { + assertThat(Stream.of(ruleLevelStrings) + .map(RuleLevel::valueOf)).containsExactly(RuleLevel.values()); + } +} diff --git a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RulesPropertiesTest.java b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RulesPropertiesTest.java index 119ce11..1dd4136 100644 --- a/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RulesPropertiesTest.java +++ b/builder/src/test/java/net/kemitix/checkstyle/ruleset/builder/RulesPropertiesTest.java @@ -15,16 +15,16 @@ public class RulesPropertiesTest { private RulesProperties rulesProperties; @Before - public void setUp() throws Exception { + public void setUp() { rulesProperties = new RulesProperties(); } @Test - public void getEmpty() throws Exception { + public void getEmpty() { assertThat(rulesProperties.getRules()).isEmpty(); } @Test - public void getContent() throws Exception { + public void getContent() { //given final Rule rule = new Rule(); //when diff --git a/codesigning.asc.enc b/codesigning.asc.enc new file mode 100644 index 0000000..7869c2d Binary files /dev/null and b/codesigning.asc.enc differ diff --git a/plugin/pom.xml b/plugin/pom.xml deleted file mode 100644 index a89b75d..0000000 --- a/plugin/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - 4.0.0 - - - net.kemitix - kemitix-checkstyle-ruleset-parent - 3.3.0 - - - kemitix-checkstyle-ruleset-maven-plugin - maven-plugin - Kemitix Checkstyle :: Ruleset :: Plugin - Checkstyle configuration using the Kemitix Checkstyle Ruleset - - - 3.5.0 - 3.5 - 3.5 - 2.3.0 - 1.0.0 - - - - - org.apache.maven - maven-plugin-api - ${maven.version} - - - org.apache.maven - maven-core - ${maven.version} - - - org.apache.maven.plugin-tools - maven-plugin-annotations - ${maven-plugin-annotations.version} - provided - - - org.twdata.maven - mojo-executor - ${mojo-executor.version} - - - me.andrz - map-builder - ${map-builder.version} - - - org.assertj - assertj-core - test - - - org.mockito - mockito-core - test - - - - - - - org.apache.maven.plugins - maven-plugin-plugin - ${maven-plugin-plugin.version} - - - - diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfiguration.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfiguration.java deleted file mode 100644 index 32572db..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfiguration.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import lombok.Builder; -import lombok.Getter; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugin.BuildPluginManager; -import org.apache.maven.project.MavenProject; - -/** - * Configuration for performing a Checkstyle Check. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -@Getter -@Builder -class CheckConfiguration { - - private MavenProject mavenProject; - - private MavenSession mavenSession; - - private ArtifactRepository artifactRepository; - - private BuildPluginManager pluginManager; - - private String rulesetVersion; - - private String sourceDirectory; - - private String level; -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojo.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojo.java deleted file mode 100644 index 07f2d0c..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojo.java +++ /dev/null @@ -1,99 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import lombok.Setter; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.Build; -import org.apache.maven.model.Plugin; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.BuildPluginManager; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; -import org.apache.maven.plugins.annotations.LifecyclePhase; -import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.project.MavenProject; - -/** - * Runs the Checkstyle Maven Plugin with the Kemitix Checkstyle Ruleset. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -@Mojo(name = "check", defaultPhase = LifecyclePhase.VALIDATE) -public class CheckMojo extends AbstractMojo { - - private static final String KEMITIX_GROUPID = "net.kemitix"; - - private static final String KEMITIX_ARTIFACTID = "kemitix-checkstyle-ruleset"; - - @Setter - private CheckstyleExecutor checkstyleExecutor = - new DefaultCheckstyleExecutor(new DefaultPluginExecutor(), new MavenXpp3Reader()); - - @Setter - @Parameter(defaultValue = "${project}", readonly = true) - private MavenProject mavenProject; - - @Setter - @Parameter(defaultValue = "${session}", readonly = true) - private MavenSession mavenSession; - - @Setter - @Parameter(defaultValue = "${localRepository}", readonly = true, required = true) - private ArtifactRepository artifactRepository; - - @Parameter(name = "level", defaultValue = "5-complexity", readonly = true) - private String level = "5-complexity"; - - @Setter - @Component - private BuildPluginManager pluginManager; - - @Override - public final void execute() throws MojoExecutionException, MojoFailureException { - checkstyleExecutor.setLog(getLog()); - CheckConfiguration config = getCheckConfiguration(); - checkstyleExecutor.performCheck(config); - } - - private CheckConfiguration getCheckConfiguration() { - final Plugin rulesetPlugin = getRulesetPlugin(); - final Build build = mavenProject.getBuild(); - return CheckConfiguration.builder() - .mavenProject(mavenProject) - .mavenSession(mavenSession) - .artifactRepository(artifactRepository) - .pluginManager(pluginManager) - .rulesetVersion(rulesetPlugin.getVersion()) - .sourceDirectory(build.getSourceDirectory()) - .level(level) - .build(); - } - - private Plugin getRulesetPlugin() { - return mavenProject.getPlugin(KEMITIX_GROUPID + ":" + KEMITIX_ARTIFACTID + "-maven-plugin"); - } -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckstyleExecutor.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckstyleExecutor.java deleted file mode 100644 index d40db6a..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/CheckstyleExecutor.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.logging.Log; - -/** - * Executes the Checkstyle plugin. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -interface CheckstyleExecutor { - - /** - * Execute Checkstyle Check. - * - * @param configuration The Configuration - * - * @throws MojoExecutionException on execution error - * @throws MojoFailureException on execution failure - */ - void performCheck(CheckConfiguration configuration) throws MojoExecutionException, MojoFailureException; - - /** - * Set the logger to use. - * - * @param log the logger. - */ - void setLog(Log log); -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutor.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutor.java deleted file mode 100644 index f3f066c..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutor.java +++ /dev/null @@ -1,186 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import lombok.val; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.DefaultArtifact; -import org.apache.maven.artifact.handler.ArtifactHandler; -import org.apache.maven.artifact.handler.DefaultArtifactHandler; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Model; -import org.apache.maven.model.Plugin; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.logging.Log; -import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import org.twdata.maven.mojoexecutor.MojoExecutor; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.util.List; -import java.util.Properties; - -/** - * Default implementation of {@link CheckstyleExecutor}. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -@SuppressWarnings("classfanoutcomplexity") -@RequiredArgsConstructor -public class DefaultCheckstyleExecutor implements CheckstyleExecutor { - - private static final String CHECKSTYLE_GROUPID = "com.puppycrawl.tools"; - - private static final String CHECKSTYLE_ARTIFACTID = "checkstyle"; - - private static final String SEVNTU_GROUPID = "com.github.sevntu-checkstyle"; - - private static final String SEVNTU_ARTIFACTID = "sevntu-checkstyle-maven-plugin"; - - private static final String KEMITIX_GROUPID = "net.kemitix"; - - private static final String KEMITIX_ARTIFACTID = "kemitix-checkstyle-ruleset"; - - private static final String APACHE_PLUGIN_GROUPID = "org.apache.maven.plugins"; - - private static final String APACHE_PLUGIN_ARTIFACTID = "maven-checkstyle-plugin"; - - private static final String CONFIG_LOCATION = "configLocation"; - - private static final String SOURCE_DIR = "sourceDirectory"; - - private static final ArtifactHandler POM_ARTIFACT_HANDLER = new DefaultArtifactHandler("pom"); - - private static final String PLUGIN_ARTIFACT_ID = KEMITIX_ARTIFACTID + "-parent"; - - private final PluginExecutor pluginExecutor; - - private final MavenXpp3Reader mavenXpp3Reader; - - @Setter - @Getter - private Log log; - - private String rulesetVersion; - - @Override - public final void performCheck(final CheckConfiguration config) - throws MojoExecutionException, MojoFailureException { - rulesetVersion = config.getRulesetVersion(); - val properties = getProperties(config.getArtifactRepository()); - - // configure - val checkstylePlugin = getPlugin(properties); - final String sourceDirectory = config.getSourceDirectory(); - final String level = config.getLevel(); - info("Ruleset: %s", level); - final String configFile = String.format("net/kemitix/checkstyle-%s.xml", level); - final Xpp3Dom configuration = pluginExecutor.configuration(pluginExecutor.element(CONFIG_LOCATION, configFile), - pluginExecutor.element(SOURCE_DIR, sourceDirectory) - ); - final MojoExecutor.ExecutionEnvironment environment = pluginExecutor.executionEnvironment(config); - - // run - pluginExecutor.executeMojo(checkstylePlugin, "check", configuration, environment); - info("Checkstyle complete"); - } - - private String getProperty(final Properties properties, final String key) { - val property = properties.getProperty(key); - debug("%s: %s", key, property); - return property; - } - - private Plugin getPlugin(final Properties properties) { - // get versions from pom.xml properties - val pluginVersion = getProperty(properties, "maven-checkstyle-plugin.version"); - val checkstyleVersion = getProperty(properties, "checkstyle.version"); - val sevntuVersion = getProperty(properties, "sevntu.version"); - info("Checkstyle %s (plugin: %s, sevntu: %s, ruleset: %s)", checkstyleVersion, - pluginVersion, sevntuVersion, rulesetVersion - ); - - // create checkstyle dependencies - val checkstyle = getCheckstyleDependency(checkstyleVersion); - val sevntu = getSevntuDependency(sevntuVersion); - val ruleset = getRulesetDependency(); - final List dependencies = pluginExecutor.dependencies(checkstyle, sevntu, ruleset); - - return pluginExecutor.plugin(APACHE_PLUGIN_GROUPID, APACHE_PLUGIN_ARTIFACTID, pluginVersion, dependencies); - } - - private Dependency getRulesetDependency() { - return pluginExecutor.dependency(KEMITIX_GROUPID, KEMITIX_ARTIFACTID, rulesetVersion); - } - - private Dependency getSevntuDependency(final String sevntuVersion) { - return pluginExecutor.dependency(SEVNTU_GROUPID, SEVNTU_ARTIFACTID, sevntuVersion); - } - - private Dependency getCheckstyleDependency(final String checkstyleVersion) { - return pluginExecutor.dependency(CHECKSTYLE_GROUPID, CHECKSTYLE_ARTIFACTID, checkstyleVersion); - } - - private Properties getProperties(final ArtifactRepository artifactRepository) throws MojoFailureException { - // load properties from the plugin pom.xml - final Artifact pluginArtifact = getPluginArtifact(artifactRepository); - try { - final File pomFile = pluginArtifact.getFile(); - return parsePomFile(pomFile).getProperties(); - } catch (XmlPullParserException | IOException e) { - throw new MojoFailureException("Can't load properties from plugin's pom.xml", e); - } - } - - private Model parsePomFile(final File pomFile) throws IOException, XmlPullParserException { - final Reader pomReader = new FileReader(pomFile); - return mavenXpp3Reader.read(pomReader); - } - - private Artifact getPluginArtifact(final ArtifactRepository artifactRepository) { - final Artifact templateArtifact = getRulesetArtifactTemplate(); - return artifactRepository.find(templateArtifact); - } - - private DefaultArtifact getRulesetArtifactTemplate() { - return new DefaultArtifact(KEMITIX_GROUPID, PLUGIN_ARTIFACT_ID, rulesetVersion, null, "", null, - POM_ARTIFACT_HANDLER - ); - } - - private void info(final String format, final Object... args) { - getLog().info(String.format(format, args)); - } - - private void debug(final String format, final Object... args) { - getLog().debug(String.format(format, args)); - } -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutor.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutor.java deleted file mode 100644 index b176c2d..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutor.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Plugin; -import org.apache.maven.plugin.MojoExecutionException; -import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.twdata.maven.mojoexecutor.MojoExecutor; - -import java.util.List; - -/** - * Wrapper for {@link org.twdata.maven.mojoexecutor.MojoExecutor}. - * - * @author Paul Campbell (pcampbell@kemitix.net). - */ -public final class DefaultPluginExecutor implements PluginExecutor { - - @Override - public MojoExecutor.Element element(final String key, final String value) { - return MojoExecutor.element(key, value); - } - - @Override - public Xpp3Dom configuration(final MojoExecutor.Element... elements) { - return MojoExecutor.configuration(elements); - } - - @Override - public MojoExecutor.ExecutionEnvironment executionEnvironment(final CheckConfiguration config) { - return MojoExecutor.executionEnvironment( - config.getMavenProject(), config.getMavenSession(), config.getPluginManager()); - } - - @Override - public void executeMojo( - final Plugin plugin, final String goal, final Xpp3Dom configuration, - final MojoExecutor.ExecutionEnvironment env - ) throws MojoExecutionException { - MojoExecutor.executeMojo(plugin, goal, configuration, env); - } - - @Override - public Dependency dependency(final String groupid, final String artifactid, final String version) { - return MojoExecutor.dependency(groupid, artifactid, version); - } - - @Override - public List dependencies(final Dependency... dependencies) { - return MojoExecutor.dependencies(dependencies); - } - - @Override - public Plugin plugin( - final String groupid, final String artifactid, final String version, final List dependencies - ) { - return MojoExecutor.plugin(groupid, artifactid, version, dependencies); - } -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/PluginExecutor.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/PluginExecutor.java deleted file mode 100644 index 91caeaf..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/PluginExecutor.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Plugin; -import org.apache.maven.plugin.MojoExecutionException; -import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.twdata.maven.mojoexecutor.MojoExecutor; - -import java.util.List; - -/** - * Interface for wrapping calls to static methods on {@link org.twdata.maven.mojoexecutor.MojoExecutor}. - * - * @author Paul Campbell (pcampbell@kemitix.net). - */ -public interface PluginExecutor { - - /** - * Constructs the element with a textual body. - * - * @param name The element name - * @param value The element text value - * - * @return The element object - */ - MojoExecutor.Element element(String name, String value); - - /** - * Builds the configuration for the goal using Elements. - * - * @param elements A list of elements for the configuration section - * - * @return The elements transformed into the Maven-native XML format - */ - Xpp3Dom configuration(MojoExecutor.Element... elements); - - /** - * Constructs the {@link MojoExecutor.ExecutionEnvironment} instance fluently. - * - * @param configuration The Configuration - * - * @return The execution environment - */ - MojoExecutor.ExecutionEnvironment executionEnvironment(CheckConfiguration configuration); - - /** - * Entry point for executing a mojo. - * - * @param plugin The plugin to execute - * @param goal The goal to execute - * @param configuration The execution configuration - * @param env The execution environment - * - * @throws MojoExecutionException If there are any exceptions locating or executing the mojo - */ - void executeMojo( - Plugin plugin, String goal, Xpp3Dom configuration, MojoExecutor.ExecutionEnvironment env - ) throws MojoExecutionException; - - /** - * Defines a dependency. - * - * @param groupId The group id - * @param artifactId The artifact id - * @param version The plugin version - * - * @return the dependency instance - */ - Dependency dependency(String groupId, String artifactId, String version); - - /** - * Creates a list of dependencies. - * - * @param dependencies the dependencies - * - * @return A list of dependencies - */ - List dependencies(Dependency... dependencies); - - /** - * Defines a plugin. - * - * @param groupId The group id - * @param artifactId The artifact id - * @param version The plugin version - * @param dependencies The plugin dependencies - * - * @return The plugin instance - */ - Plugin plugin( - String groupId, String artifactId, String version, List dependencies - ); -} diff --git a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/package-info.java b/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/package-info.java deleted file mode 100644 index a2bf527..0000000 --- a/plugin/src/main/java/net/kemitix/checkstyle/ruleset/plugin/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * The MIT License (MIT) - * - * Copyright (c) 2017 Paul Campbell - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies - * or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package net.kemitix.checkstyle.ruleset.plugin; diff --git a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfigurationTest.java b/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfigurationTest.java deleted file mode 100644 index 15c63ac..0000000 --- a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckConfigurationTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.kemitix.checkstyle.ruleset.plugin; - -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * @author Paul Campbell (pcampbell@kemitix.net). - */ -public class CheckConfigurationTest { - - @Test - public void toStringCoverage() { - //given - final String rulesetVersion = "ruleset version"; - final String sourceDirectory = "source directory"; - //when - final String result = CheckConfiguration.builder() - .rulesetVersion(rulesetVersion) - .sourceDirectory(sourceDirectory) - .toString(); - //then - assertThat(result).contains("rulesetVersion=ruleset version") - .contains("sourceDirectory=source directory"); - } -} diff --git a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojoTest.java b/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojoTest.java deleted file mode 100644 index 86e540f..0000000 --- a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/CheckMojoTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.Build; -import org.apache.maven.model.Plugin; -import org.apache.maven.plugin.BuildPluginManager; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.project.MavenProject; -import org.junit.Before; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.given; -import static org.mockito.BDDMockito.then; - -/** - * Tests for {@link CheckMojo}. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -public class CheckMojoTest { - - @Mock - private CheckstyleExecutor checkstyleExecutor; - - @Mock - private MavenProject mavenProject; - - @Mock - private MavenSession mavenSession; - - @Mock - private ArtifactRepository artifactRepository; - - @Mock - private BuildPluginManager pluginManager; - - @Captor - private ArgumentCaptor configuration; - - @Mock - private Plugin rulesetPlugin; - - @Mock - private Build build; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void canExecute() throws MojoFailureException, MojoExecutionException { - //given - final CheckMojo mojo = new CheckMojo(); - mojo.setCheckstyleExecutor(checkstyleExecutor); - mojo.setMavenProject(mavenProject); - mojo.setMavenSession(mavenSession); - mojo.setArtifactRepository(artifactRepository); - mojo.setPluginManager(pluginManager); - given(mavenProject.getPlugin(any())).willReturn(rulesetPlugin); - given(mavenProject.getBuild()).willReturn(build); - //when - mojo.execute(); - //then - then(checkstyleExecutor).should() - .performCheck(configuration.capture()); - assertThat(configuration.getValue()).returns(mavenProject, CheckConfiguration::getMavenProject) - .returns(mavenSession, CheckConfiguration::getMavenSession) - .returns(artifactRepository, CheckConfiguration::getArtifactRepository) - .returns(pluginManager, CheckConfiguration::getPluginManager); - } -} diff --git a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutorTest.java b/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutorTest.java deleted file mode 100644 index b7de3cb..0000000 --- a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultCheckstyleExecutorTest.java +++ /dev/null @@ -1,161 +0,0 @@ -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Model; -import org.apache.maven.model.Plugin; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.BuildPluginManager; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.logging.Log; -import org.apache.maven.project.MavenProject; -import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.twdata.maven.mojoexecutor.MojoExecutor; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.BDDMockito.given; -import static org.mockito.BDDMockito.then; - -/** - * Tests for {@link DefaultCheckstyleExecutor}. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -public class DefaultCheckstyleExecutorTest { - - @Rule - public TemporaryFolder folder = new TemporaryFolder(); - - @Mock - private PluginExecutor pluginExecutor; - - @Mock - private MavenProject mavenProject; - - @Mock - private MavenSession mavenSession; - - @Mock - private ArtifactRepository artifactRepository; - - @Mock - private BuildPluginManager pluginManager; - - @Mock - private Plugin rulesetPlugin; - - @Mock - private Log log; - - private DefaultCheckstyleExecutor checkstyleExecutor; - - private String level; - - @Mock - private Artifact artifact; - - @Mock - private MavenXpp3Reader mavenXpp3Reader; - - @Mock - private Model pomModel; - - @Mock - private MojoExecutor.Element configElement; - - @Mock - private MojoExecutor.Element sourceElement; - - @Mock - private Xpp3Dom pluginConfig; - - @Mock - private MojoExecutor.ExecutionEnvironment env; - - @Mock - private Dependency checkstyle; - - @Mock - private Dependency sevntu; - - @Mock - private Dependency ruleset; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - level = "test level"; - checkstyleExecutor = new DefaultCheckstyleExecutor(pluginExecutor, mavenXpp3Reader); - checkstyleExecutor.setLog(log); - } - - @Test - public void canPerformCheck() - throws MojoFailureException, MojoExecutionException, IOException, XmlPullParserException { - //given - final CheckConfiguration configuration = CheckConfiguration.builder() - .mavenProject(mavenProject) - .mavenSession(mavenSession) - .artifactRepository(artifactRepository) - .pluginManager(pluginManager) - .rulesetVersion("ruleset version") - .level(level) - .build(); - - given(artifactRepository.find(any())).willReturn(artifact); - final File artifactFile = folder.newFile("pom.xml"); - given(artifact.getFile()).willReturn(artifactFile); - given(mavenXpp3Reader.read(any(FileReader.class))).willReturn(pomModel); - final Properties properties = new Properties(); - given(pomModel.getProperties()).willReturn(properties); - given(pluginExecutor.element(eq("configLocation"), any())).willReturn(configElement); - given(pluginExecutor.element(eq("sourceDirectory"), any())).willReturn(sourceElement); - given(pluginExecutor.configuration(configElement, sourceElement)).willReturn(pluginConfig); - given(pluginExecutor.executionEnvironment(configuration)).willReturn(env); - final List dependencies = new ArrayList<>(); - dependencies.add(checkstyle); - dependencies.add(sevntu); - dependencies.add(ruleset); - final String pluginVersion = "plugin version"; - final String checkstyleVersion = "checkstyle version"; - final String sevntuVersion = "sevntu version"; - final String rulesetVersion = "ruleset version"; - given(pluginExecutor.dependencies(checkstyle, sevntu, ruleset)).willReturn(dependencies); - given(pluginExecutor.dependency("com.puppycrawl.tools", "checkstyle", checkstyleVersion)).willReturn( - checkstyle); - given(pluginExecutor.dependency( - "com.github.sevntu.checkstyle", "sevntu-checkstyle-maven-plugin", sevntuVersion)).willReturn(sevntu); - given(pluginExecutor.dependency("net.kemitix", "kemtiix-checkstyle-ruleset", rulesetVersion)).willReturn( - ruleset); - properties.setProperty("maven-checkstyle-plugin.version", pluginVersion); - properties.setProperty("checkstyle.version", checkstyleVersion); - properties.setProperty("sevntu.version", sevntuVersion); - given(pluginExecutor.plugin( - eq("org.apache.maven.plugins"), eq("maven-checkstyle-plugin"), eq(pluginVersion), any())).willReturn( - rulesetPlugin); - //when - checkstyleExecutor.performCheck(configuration); - //then - - then(pluginExecutor).should() - .executeMojo(rulesetPlugin, "check", pluginConfig, env); - } -} diff --git a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutorTest.java b/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutorTest.java deleted file mode 100644 index ba5f6b2..0000000 --- a/plugin/src/test/java/net/kemitix/checkstyle/ruleset/plugin/DefaultPluginExecutorTest.java +++ /dev/null @@ -1,177 +0,0 @@ -package net.kemitix.checkstyle.ruleset.plugin; - -import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Plugin; -import org.apache.maven.plugin.BuildPluginManager; -import org.apache.maven.plugin.InvalidPluginDescriptorException; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.PluginConfigurationException; -import org.apache.maven.plugin.PluginDescriptorParsingException; -import org.apache.maven.plugin.PluginManagerException; -import org.apache.maven.plugin.PluginNotFoundException; -import org.apache.maven.plugin.PluginResolutionException; -import org.apache.maven.plugin.descriptor.MojoDescriptor; -import org.apache.maven.plugin.descriptor.PluginDescriptor; -import org.apache.maven.project.MavenProject; -import org.codehaus.plexus.configuration.PlexusConfiguration; -import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.twdata.maven.mojoexecutor.MojoExecutor; - -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.BDDMockito.given; -import static org.mockito.BDDMockito.then; - -/** - * Tests for {@link DefaultPluginExecutor}. - * - * @author Paul Campbell (pcampbell@kemitix.net) - */ -public class DefaultPluginExecutorTest { - - private PluginExecutor pluginExecutor; - - @Mock - private MavenProject mavenProject; - - @Mock - private MavenSession mavenSession; - - @Mock - private BuildPluginManager pluginManager; - - @Mock - private Plugin plugin; - - @Mock - private Xpp3Dom configuration; - - @Mock - private PluginDescriptor pluginDescriptor; - - @Mock - private MojoDescriptor mojoDescriptor; - - @Mock - private PlexusConfiguration mojoConfiguration; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - pluginExecutor = new DefaultPluginExecutor(); - } - - @Test - public void canElement() { - //when - final MojoExecutor.Element element = pluginExecutor.element("name", "value"); - //then - assertThat(element.toDom()).returns("name", Xpp3Dom::getName) - .returns("value", Xpp3Dom::getValue); - } - - @Test - public void canConfiguration() { - //given - final MojoExecutor.Element alpha = pluginExecutor.element("alpha", "first"); - final MojoExecutor.Element beta = pluginExecutor.element("beta", "second"); - //when - final Xpp3Dom configuration = pluginExecutor.configuration(alpha, beta); - //then - assertThat(configuration.getChild("alpha")).returns("alpha", Xpp3Dom::getName) - .returns("first", Xpp3Dom::getValue); - assertThat(configuration.getChild("beta")).returns("beta", Xpp3Dom::getName) - .returns("second", Xpp3Dom::getValue); - } - - @Test - public void canExecutionEnvironment() { - //given - final CheckConfiguration configuration = createCheckConfiguration(); - //when - final MojoExecutor.ExecutionEnvironment environment = pluginExecutor.executionEnvironment(configuration); - //then - assertThat(environment).returns(mavenProject, MojoExecutor.ExecutionEnvironment::getMavenProject) - .returns(mavenSession, MojoExecutor.ExecutionEnvironment::getMavenSession) - .returns(pluginManager, MojoExecutor.ExecutionEnvironment::getPluginManager); - } - - private CheckConfiguration createCheckConfiguration() { - return CheckConfiguration.builder() - .mavenProject(mavenProject) - .mavenSession(mavenSession) - .pluginManager(pluginManager) - .build(); - } - - @Test - public void canExecuteMojo() - throws MojoExecutionException, InvalidPluginDescriptorException, PluginResolutionException, - PluginDescriptorParsingException, PluginNotFoundException, PluginManagerException, - PluginConfigurationException, MojoFailureException { - //given - final String goal = "check"; - final MojoExecutor.ExecutionEnvironment environment = - pluginExecutor.executionEnvironment(createCheckConfiguration()); - given(mavenSession.getCurrentProject()).willReturn(mavenProject); - given(pluginManager.loadPlugin(eq(plugin), any(), any())).willReturn(pluginDescriptor); - given(pluginDescriptor.getMojo(goal)).willReturn(mojoDescriptor); - given(mojoDescriptor.getMojoConfiguration()).willReturn(mojoConfiguration); - given(mojoConfiguration.getAttributeNames()).willReturn(new String[]{}); - given(mojoConfiguration.getChildren()).willReturn(new PlexusConfiguration[]{}); - //when - pluginExecutor.executeMojo(plugin, goal, configuration, environment); - //then - then(pluginManager).should() - .executeMojo(eq(mavenSession), any()); - } - - @Test - public void canDependency() { - //given - final String groupId = "groupId"; - final String artifactId = "artifactId"; - final String version = "version"; - //when - final Dependency dependency = pluginExecutor.dependency(groupId, artifactId, version); - //then - assertThat(dependency).returns(groupId, Dependency::getGroupId) - .returns(artifactId, Dependency::getArtifactId) - .returns(version, Dependency::getVersion); - } - - @Test - public void canDependencies() { - //given - final Dependency dependency = pluginExecutor.dependency("groupId", "artifactId", "version"); - //when - final List dependencies = pluginExecutor.dependencies(dependency); - //then - assertThat(dependencies).containsExactly(dependency); - } - - @Test - public void canPlugin() { - //given - final String groupId = "groupId"; - final String artifactId = "artifactId"; - final String version = "version"; - final List dependencies = pluginExecutor.dependencies(pluginExecutor.dependency("pg", "pa", "pv")); - //when - final Plugin plugin = pluginExecutor.plugin(groupId, artifactId, version, dependencies); - //then - assertThat(plugin).returns(groupId, Plugin::getGroupId) - .returns(artifactId, Plugin::getArtifactId) - .returns(version, Plugin::getVersion) - .returns(dependencies, Plugin::getDependencies); - } -} diff --git a/pom.xml b/pom.xml index 2cadc77..c7d9a5f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,103 +3,16 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - net.kemitix - kemitix-parent - 3.0.0 - - - kemitix-checkstyle-ruleset-parent - 3.3.0 + net.kemitix.checkstyle + ruleset-root + 3.4.0 pom - Kemitix Checkstyle :: Ruleset :: Parent - Parent POM for the Kemitix Checkstyle Ruleset and it's Builder - - - 2.17 - 8.0 - 1.24.1 - - Brussels-SR3 - 1.5.4.RELEASE - 2.3.5 - 1.0.0 - 4.3.0 - 2.5.6 - - 2.8.47 - 3.8.0 - - builder ruleset - plugin regressions - - https://github.com/kemitix/kemitix-checkstyle-ruleset/issues - GitHub Issues - - - - scm:git:git@github.com:kemitix/kemitix-checkstyle-ruleset.git - scm:git:git@github.com:kemitix/kemitix-checkstyle-ruleset.git - git@github.com:kemitix/kemitix-checkstyle-ruleset.git - - - https://github.com/kemitix/kemitix-checkstyle-ruleset - - 2016 - - - - - com.puppycrawl.tools - checkstyle - ${checkstyle.version} - - - com.github.sevntu-checkstyle - sevntu-checks - ${sevntu.version} - - - io.spring.platform - platform-bom - ${spring-platform.version} - pom - import - - - com.speedment.common - mapstream - ${mapstream.version} - - - org.mockito - mockito-core - ${mockito.version} - - - org.assertj - assertj-core - ${assertj.version} - - - me.andrz - map-builder - ${map-builder.version} - - - org.immutables - value - ${immutables-value.version} - - - - diff --git a/regressions/pom.xml b/regressions/pom.xml index 5ee54fa..f9540a2 100644 --- a/regressions/pom.xml +++ b/regressions/pom.xml @@ -5,25 +5,49 @@ 4.0.0 net.kemitix - kemitix-checkstyle-ruleset-parent - 3.3.0 + kemitix-parent + 5.0.3 + - kemitix-checkstyle-ruleset-regressions - Kemitix Checkstyle :: Ruleset :: Regression Tests + net.kemitix.checkstyle + ruleset-regressions + 3.4.0 - ${project.version} - 5-complexity + 2.10 + 0.2.0 + + + 0-disabled + net.kemitix.checkstyle.regressions true + 2.5.6 org.immutables value + ${immutables-value.version} provided + + + + io.repaint.maven + tiles-maven-plugin + ${tiles-maven-plugin.version} + true + + + net.kemitix.tiles:checkstyle-tile:${kemitix-tiles.version} + + + + + + diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/AvoidDefaultSerializableInInnerClasses.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/AvoidDefaultSerializableInInnerClasses.java index 1ac2c72..51f1157 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/AvoidDefaultSerializableInInnerClasses.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/AvoidDefaultSerializableInInnerClasses.java @@ -33,7 +33,6 @@ public class AvoidDefaultSerializableInInnerClasses { /** * Inner class should not use default implementations of {@code readObject()} and {@code writeObject()}. */ - @SuppressWarnings("avoiddefaultserializableininnerclasses") public class InnerClass implements Serializable { } diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/Basic.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/Basic.java index 050b9c6..f269c44 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/Basic.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/Basic.java @@ -22,7 +22,7 @@ package net.kemitix.checkstyle.regressions; /** - * Sample class. + * Sample class with no checkstyle issues. * * @author Paul Campbell (pcampbell@kemitix.net) */ diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/EmptyPublicCtorInClass.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/EmptyPublicCtorInClass.java index 1ce63b0..0c49972 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/EmptyPublicCtorInClass.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/EmptyPublicCtorInClass.java @@ -31,7 +31,6 @@ public class EmptyPublicCtorInClass { /** * Useless empty public constructors. */ - @SuppressWarnings("emptypublicctorinclass") EmptyPublicCtorInClass() { } diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/ExplicitInitialization.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/ExplicitInitialization.java index 8742195..9c20896 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/ExplicitInitialization.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/ExplicitInitialization.java @@ -37,16 +37,12 @@ class ExplicitInitialization { private Object validObject = new Object(); - @SuppressWarnings("explicitinitialization") private Boolean invalidBoolean = null; - @SuppressWarnings("explicitinitialization") private Integer invalidInteger = null; - @SuppressWarnings("explicitinitialization") private String invalidString = null; - @SuppressWarnings("explicitinitialization") private Object invalidObject = null; } diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/FinalizeImplementation.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/FinalizeImplementation.java index 738f7de..849afb7 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/FinalizeImplementation.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/FinalizeImplementation.java @@ -31,7 +31,7 @@ class FinalizeImplementation { /** * Negates effect of superclass finalize. */ - @SuppressWarnings({"PMD.EmptyFinalizer", "nofinalizer", "finalizeimplementation"}) + @SuppressWarnings("PMD.EmptyFinalizer") protected void finalize() { // doesn't call super.finalize() } diff --git a/regressions/src/main/java/net/kemitix/checkstyle/regressions/MoveVariableInsideIf.java b/regressions/src/main/java/net/kemitix/checkstyle/regressions/MoveVariableInsideIf.java index 6e6151f..81c76d3 100644 --- a/regressions/src/main/java/net/kemitix/checkstyle/regressions/MoveVariableInsideIf.java +++ b/regressions/src/main/java/net/kemitix/checkstyle/regressions/MoveVariableInsideIf.java @@ -41,7 +41,6 @@ class MoveVariableInsideIf { * * @return value */ - @SuppressWarnings("movevariableinsideif") protected String invalid() { String variable = input.substring(1); if (condition) { diff --git a/ruleset/pom.xml b/ruleset/pom.xml index 573adc8..30ab568 100644 --- a/ruleset/pom.xml +++ b/ruleset/pom.xml @@ -6,97 +6,62 @@ net.kemitix - kemitix-checkstyle-ruleset-parent - 3.3.0 + kemitix-parent + 5.0.3 + kemitix-checkstyle-ruleset + 3.4.0 jar - Kemitix Checkstyle :: Ruleset - Checkstyle Ruleset for use by packages derived from kemitix-parent + Kemitix Checkstyle Ruleset + A Checkstyle Ruleset + https://github.com/kemitix/kemitix-checkstyle-ruleset - 2.10.4 - 3.0.1 - 1.6 - 2.8.2 + 2.10 + 0.2.0 - - - release - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - - attach-javadocs - verify - - jar - - - - + + + The MIT License (MIT) + https://opensource.org/licenses/MIT + + - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - attach-sources - verify - - jar-no-fork - - - - + + + Paul Campbell + pcampbell@kemitix.net + Kemitix + https://github.com/kemitix/ + + - - org.apache.maven.plugins - maven-gpg-plugin - ${maven-gpg-plugin.version} - - ${gpg.passphrase} - - - - sign-artifacts - verify - - sign - - - - + + scm:git:git@github.com:kemitix/kemitix-checkstyle-ruleset.git + scm:git:git@github.com:kemitix/kemitix-checkstyle-ruleset.git + git@github.com:kemitix/kemitix-checkstyle-ruleset.git + - - org.apache.maven.plugins - maven-deploy-plugin - ${maven-deploy-plugin.version} - - - - - + + + + io.repaint.maven + tiles-maven-plugin + ${tiles-maven-plugin.version} + true + + + net.kemitix.tiles:maven-plugins-tile:${kemitix-tiles.version} + net.kemitix.tiles:enforcer-tile:${kemitix-tiles.version} + net.kemitix.tiles:release-tile:${kemitix-tiles.version} + + + + + - - - sonatype-nexus-snapshots - Sonatype Nexus Snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - - - sonatype-nexus-staging - Nexus Release Repository - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - diff --git a/travis-ci/codesigning.asc.enc b/travis-ci/codesigning.asc.enc deleted file mode 100644 index 5b3501d..0000000 Binary files a/travis-ci/codesigning.asc.enc and /dev/null differ diff --git a/travis-ci/travis-coveralls-report.sh b/travis-ci/travis-coveralls-report.sh deleted file mode 100755 index aab1704..0000000 --- a/travis-ci/travis-coveralls-report.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -./mvnw --projects builder,plugin test jacoco:report coveralls:report diff --git a/travis-ci/travis-deploy.sh b/travis-ci/travis-deploy.sh deleted file mode 100755 index d5f7775..0000000 --- a/travis-ci/travis-deploy.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -if [ "$TRAVIS_BRANCH" = 'master' ] && [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then - echo "Preparing to deploy to nexus..." - openssl aes-256-cbc -K $encrypted_efec3258f55d_key -iv $encrypted_efec3258f55d_iv \ - -in travis-ci/codesigning.asc.enc -out travis-ci/codesigning.asc -d - echo "Signing key decrypted" - gpg --batch --fast-import travis-ci/codesigning.asc - echo "Signing key imported" - ./mvnw --projects .,plugin,ruleset --settings travis-ci/travis-settings.xml \ - -Dskip-Tests=true -P release -B deploy - echo "Deploy complete" -else - echo "Not deploying" - echo " TRAVIS_BRANCH: $TRAVIS_BRANCH" - echo " TRAVIS_PULL_REQUEST: $TRAVIS_PULL_REQUEST" -fi - diff --git a/travis-ci/travis-settings.xml b/travis-ci/travis-settings.xml deleted file mode 100644 index e2d8c63..0000000 --- a/travis-ci/travis-settings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - sonatype-nexus-snapshots - kemitix - ${env.CI_DEPLOY_PASSWORD} - - - sonatype-nexus-staging - kemitix - ${env.CI_DEPLOY_PASSWORD} - - - - - gpg-sign - - true - - - gpg - ${env.CI_DEPLOY_GPG_KEYNAME} - ${env.CI_DEPLOY_GPG_PASSPHRASE} - - - -