Skip to content

Commit 50d658c

Browse files
committed
Merge pull request GH-30 from github:joschi/licenser
Make Licenser plugin work with Gradle 7.1
2 parents e9a4443 + 5b0c93b commit 50d658c

File tree

2 files changed

+67
-66
lines changed

2 files changed

+67
-66
lines changed

src/functionalTest/groovy/org/cadixdev/gradle/licenser/LicenserPluginFunctionalTest.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ class LicenserPluginFunctionalTest extends Specification {
4343
// TODO: restore android plugin once versions that support configuration cache are available
4444
/* gradleVersion | androidVersion | extraArgs */
4545
[ "6.8.3", null, ["--configuration-cache"] ],
46-
[ "7.0", null, ["--configuration-cache"] ],
46+
[ "6.9", null, ["--configuration-cache"] ],
47+
[ "7.0.2", null, ["--configuration-cache"] ],
48+
[ "7.1", null, ["--configuration-cache"] ],
4749
].asImmutable()
4850

4951
static final def testMatrix = ([

src/main/groovy/org/cadixdev/gradle/licenser/Licenser.groovy

Lines changed: 64 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import org.cadixdev.gradle.licenser.header.Header
2929
import org.cadixdev.gradle.licenser.tasks.LicenseCheck
3030
import org.cadixdev.gradle.licenser.tasks.LicenseTask
3131
import org.cadixdev.gradle.licenser.tasks.LicenseUpdate
32-
import org.gradle.api.GradleException
3332
import org.gradle.api.Plugin
3433
import org.gradle.api.Project
3534
import org.gradle.api.file.FileCollection
@@ -57,87 +56,87 @@ class Licenser implements Plugin<Project> {
5756
@Override
5857
void apply(Project project) {
5958
this.project = project
59+
this.extension = project.extensions.create('license', LicenseExtension, project.objects, project)
60+
this.extension.header.set(extension.charset.map { charset -> project.resources.text.fromFile('LICENSE', charset) })
6061

61-
project.with {
62-
this.extension = extensions.create('license', LicenseExtension, project.objects, project)
63-
extension.header.set(extension.charset.map { charset -> project.resources.text.fromFile('LICENSE', charset) })
64-
65-
def headers = objects.listProperty(Header)
66-
// TODO: finalizeValueOnRead is not supported on Gradle 5, remove when dropping support
67-
try {
68-
extension.conditionalProperties.finalizeValueOnRead()
69-
headers.finalizeValueOnRead()
70-
} catch (final MissingMethodException ignored) {
71-
// no method
62+
def headers = project.objects.listProperty(Header)
63+
// TODO: finalizeValueOnRead is not supported on Gradle 5, remove when dropping support
64+
try {
65+
extension.conditionalProperties.finalizeValueOnRead()
66+
headers.finalizeValueOnRead()
67+
} catch (final MissingMethodException ignored) {
68+
// no method
69+
}
70+
headers.set(extension.conditionalProperties.map {
71+
def built = []
72+
it.reverseEach { props ->
73+
built << prepareHeader(extension, props)
7274
}
73-
headers.set(extension.conditionalProperties.map {
74-
def built = []
75-
it.reverseEach { props ->
76-
built << prepareHeader(extension, props)
75+
built << prepareHeader(extension, extension)
76+
return built
77+
})
78+
79+
def plugins = project.plugins
80+
def tasks = project.tasks
81+
82+
// Configure tasks from different sources
83+
plugins.withType(JavaBasePlugin) {
84+
project.sourceSets.all { SourceSet set ->
85+
def extensionIgnoreFailures = extension.ignoreFailures
86+
def extensionLineEnding = extension.lineEnding
87+
createTask(CHECK_TASK, LicenseCheck, headers, set) {
88+
ignoreFailures.set(extensionIgnoreFailures)
89+
}
90+
createTask(FORMAT_TASK, LicenseUpdate, headers, set) {
91+
lineEnding.set(extensionLineEnding)
7792
}
78-
built << prepareHeader(extension, extension)
79-
return built
80-
})
93+
}
94+
}
8195

82-
// Configure tasks from different sources
83-
plugins.withType(JavaBasePlugin) {
84-
sourceSets.all { SourceSet set ->
96+
['com.android.library', 'com.android.application'].each {
97+
plugins.withId(it) {
98+
project.android.sourceSets.all { set ->
8599
def extensionIgnoreFailures = extension.ignoreFailures
86100
def extensionLineEnding = extension.lineEnding
87-
createTask(CHECK_TASK, LicenseCheck, headers, set) {
101+
createAndroidTask(CHECK_TASK, LicenseCheck, headers, set) {
88102
ignoreFailures.set(extensionIgnoreFailures)
89103
}
90-
createTask(FORMAT_TASK, LicenseUpdate, headers, set) {
104+
createAndroidTask(FORMAT_TASK, LicenseUpdate, headers, set) {
91105
lineEnding.set(extensionLineEnding)
92106
}
93107
}
94108
}
109+
}
95110

96-
['com.android.library', 'com.android.application'].each {
97-
plugins.withId(it) {
98-
android.sourceSets.all { set ->
99-
def extensionIgnoreFailures = extension.ignoreFailures
100-
def extensionLineEnding = extension.lineEnding
101-
createAndroidTask(CHECK_TASK, LicenseCheck, headers, set) {
102-
ignoreFailures.set(extensionIgnoreFailures)
103-
}
104-
createAndroidTask(FORMAT_TASK, LicenseUpdate, headers, set) {
105-
lineEnding.set(extensionLineEnding)
106-
}
107-
}
108-
}
111+
extension.tasks.all { LicenseTaskProperties props ->
112+
def extensionIgnoreFailures = extension.ignoreFailures
113+
def extensionLineEnding = extension.lineEnding
114+
createCustomTask(CHECK_TASK, LicenseCheck, props) {
115+
ignoreFailures.set(extensionIgnoreFailures)
109116
}
110-
111-
extension.tasks.all { LicenseTaskProperties props ->
112-
def extensionIgnoreFailures = extension.ignoreFailures
113-
def extensionLineEnding = extension.lineEnding
114-
createCustomTask(CHECK_TASK, LicenseCheck, props) {
115-
ignoreFailures.set(extensionIgnoreFailures)
116-
}
117-
createCustomTask(FORMAT_TASK, LicenseUpdate, props) {
118-
lineEnding.set(extensionLineEnding)
119-
}
117+
createCustomTask(FORMAT_TASK, LicenseUpdate, props) {
118+
lineEnding.set(extensionLineEnding)
120119
}
120+
}
121121

122-
// Then configure catch-all tasks
123-
def globalCheck = tasks.register(CHECK_TASK + 's') {
124-
dependsOn(tasks.withType(LicenseCheck))
125-
}
126-
tasks.register('licenseCheck') {
127-
dependsOn(globalCheck)
128-
}
129-
def globalFormat = tasks.register(FORMAT_TASK + 's') {
130-
dependsOn(tasks.withType(LicenseUpdate))
131-
}
132-
tasks.register('licenseFormat') {
133-
group = FORMATTING_GROUP
134-
dependsOn(globalFormat)
135-
}
122+
// Then configure catch-all tasks
123+
def globalCheck = tasks.register(CHECK_TASK + 's') {
124+
dependsOn(tasks.withType(LicenseCheck))
125+
}
126+
tasks.register('licenseCheck') {
127+
dependsOn(globalCheck)
128+
}
129+
def globalFormat = tasks.register(FORMAT_TASK + 's') {
130+
dependsOn(tasks.withType(LicenseUpdate))
131+
}
132+
tasks.register('licenseFormat') {
133+
group = FORMATTING_GROUP
134+
dependsOn(globalFormat)
135+
}
136136

137-
plugins.withType(LifecycleBasePlugin) {
138-
tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME).configure {
139-
dependsOn globalCheck
140-
}
137+
plugins.withType(LifecycleBasePlugin) {
138+
tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME).configure {
139+
dependsOn(globalCheck)
141140
}
142141
}
143142
}

0 commit comments

Comments
 (0)