Skip to content

Commit

Permalink
deprecate quality.pmdIncremental property because incremental analysi…
Browse files Browse the repository at this point in the history
…s is enabled by default since gradle 6.4
  • Loading branch information
xvik committed May 4, 2021
1 parent 9941c9e commit dbe915c
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 6 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
* Deprecate quality.pmdIncremental property because incremental analysis is enabled by default
since gradle 6.4 (property only useful for enabling it in gradle 5.6 - 6.3)

### 4.6.0 (2021-05-01)
* Fix gradle 7 compatibility (for checkstyle plugin)
* Fix console output on windows (remove special unicode separator characters, appearing incorrectly)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,11 @@ class QualityExtension {
* Enable PMD incremental analysis (cache results between builds to speed up processing).
* This is a shortcut for pmd plugin's {@code pmd.incrementalAnalysis } configuration option.
* Option is disabled by default due to possible side effects with build gradle cache or incremental builds.
* <p>
* @deprecated from gradle 6.4 incremental analysis is enabled by default in pmd plugin! This option will not
* disable it (property is useful only for enabling it in gradle 5.6 - 6.3).
*/
@Deprecated
boolean pmdIncremental = false

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ class QualityPlugin implements Plugin<Project> {
sourceSets = extension.sourceSets
}
if (extension.pmdIncremental) {
// block enables incremental analysis for gradle 5.6 - 6.4 (later it is enabled by default)
if (PmdExtension.metaClass.properties.any { it.name == 'incrementalAnalysis' }) {
pmd.incrementalAnalysis = true
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import org.gradle.testkit.runner.BuildResult
import org.gradle.testkit.runner.GradleRunner
import org.junit.Rule
import org.junit.rules.TemporaryFolder
import ru.vyarus.gradle.plugin.quality.report.Reporter
import spock.lang.Specification

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,45 @@ import ru.vyarus.gradle.plugin.quality.AbstractKitTest
*/
class PmdIncrementalAnalysisKitTest extends AbstractKitTest {

def "Check pmd incremental mode enabling"() {
def "Check pmd incremental mode enabled by default"() {
setup:
build("""
plugins {
id 'java'
id 'ru.vyarus.quality'
}
quality {
strict false
// does not affect enabled status in gradle >= 6.4
pmdIncremental = false
}
task validator {
doFirst() {
if (!pmdMain.incrementalAnalysis.get()) {
throw new IllegalStateException('PMD incremental analysis not enabled');
}
}
}
repositories {
mavenCentral() //required for testKit run
}
""")

fileFromClasspath('src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java')

when: "run check task with java sources"
BuildResult result = run('pmdMain', 'validator')

then: "all plugins detect violations"
result.task(":pmdMain").outcome == TaskOutcome.SUCCESS
}


def "Check pmd incremental mode enabling on gradle < 6.4"() {
setup:
build("""
plugins {
Expand All @@ -23,6 +61,14 @@ class PmdIncrementalAnalysisKitTest extends AbstractKitTest {
pmdIncremental = true
}
task validator {
doFirst() {
if (!pmdMain.incrementalAnalysis.get()) {
throw new IllegalStateException('PMD incremental analysis not enabled');
}
}
}
repositories {
mavenCentral() //required for testKit run
Expand All @@ -32,7 +78,7 @@ class PmdIncrementalAnalysisKitTest extends AbstractKitTest {
fileFromClasspath('src/main/java/sample/Sample.java', '/ru/vyarus/gradle/plugin/quality/java/sample/Sample.java')

when: "run check task with java sources"
BuildResult result = run('pmdMain')
BuildResult result = runVer('6.3','pmdMain', 'validator')

then: "all plugins detect violations"
result.task(":pmdMain").outcome == TaskOutcome.SUCCESS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import ru.vyarus.gradle.plugin.quality.AbstractTest
*/
class PmdIncrementalTest extends AbstractTest {

def "Check not enabled by default"() {
def "Check enabled by default"() {

when: "apply plugin"
file('src/main/java').mkdirs()
Expand All @@ -22,8 +22,8 @@ class PmdIncrementalTest extends AbstractTest {
quality.pmdIncremental = false
}

then: "value applied to pmd"
project.pmd.incrementalAnalysis.get() == false
then: "value not applied but true by default"
project.pmd.incrementalAnalysis.get() == true

}

Expand Down

0 comments on commit dbe915c

Please sign in to comment.