From 4a239462df9d702c4797f20c6652147450cca0cf Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 13:04:38 +0200 Subject: [PATCH 1/7] Add Input/Output/Internal annotations on Gradle tasks properties Gradle 7 now requires these annotations on all task properties --- .../gradle/wording/tasks/DownloadWordingTask.kt | 9 ++++++--- .../betomorrow/gradle/wording/tasks/UpdateWordingTask.kt | 7 +++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/betomorrow/gradle/wording/tasks/DownloadWordingTask.kt b/src/main/kotlin/com/betomorrow/gradle/wording/tasks/DownloadWordingTask.kt index 0cbbbcd..52bb76a 100644 --- a/src/main/kotlin/com/betomorrow/gradle/wording/tasks/DownloadWordingTask.kt +++ b/src/main/kotlin/com/betomorrow/gradle/wording/tasks/DownloadWordingTask.kt @@ -3,23 +3,25 @@ package com.betomorrow.gradle.wording.tasks import com.betomorrow.gradle.wording.infra.drive.DriveMimeType import com.betomorrow.gradle.wording.infra.drive.GoogleDrive import org.gradle.api.DefaultTask -import org.gradle.api.tasks.Optional -import org.gradle.api.tasks.OutputFile -import org.gradle.api.tasks.TaskAction +import org.gradle.api.tasks.* import java.io.File import java.nio.file.Paths open class DownloadWordingTask : DefaultTask() { + @Input @Optional var clientId: String? = null + @Input @Optional var clientSecret: String? = null + @InputFile @Optional var credentials: File? = null + @Input lateinit var fileId: String @OutputFile @@ -37,6 +39,7 @@ open class DownloadWordingTask : DefaultTask() { googleDrive.downloadFile(fileId, DriveMimeType.XLSX, output) } + @get:Internal val tokenDirectory: String get() { return project.projectDir diff --git a/src/main/kotlin/com/betomorrow/gradle/wording/tasks/UpdateWordingTask.kt b/src/main/kotlin/com/betomorrow/gradle/wording/tasks/UpdateWordingTask.kt index cfd07b8..ba401a2 100644 --- a/src/main/kotlin/com/betomorrow/gradle/wording/tasks/UpdateWordingTask.kt +++ b/src/main/kotlin/com/betomorrow/gradle/wording/tasks/UpdateWordingTask.kt @@ -4,6 +4,7 @@ import com.betomorrow.gradle.wording.domain.Column import com.betomorrow.gradle.wording.domain.XlsxExtractor import com.betomorrow.gradle.wording.domain.XmlUpdater import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFile import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction @@ -18,12 +19,18 @@ open class UpdateWordingTask : DefaultTask() { @OutputFile lateinit var output: File + @Input var skipHeaders: Boolean = true + @Input lateinit var keysColumn: String + @Input lateinit var column: String + @Input var sheetNames = emptyList() + @Input var failOnMissingKeys = false + @Input var addMissingKeys = false @TaskAction From 7dfd5543afb03ea4de0926c33fa5938d3c0b2cec Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 13:39:44 +0200 Subject: [PATCH 2/7] Fix Java 11 break by replacing import of XML serializer internals with arbitrary strings --- .../com/betomorrow/gradle/wording/domain/XmlExtensions.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/betomorrow/gradle/wording/domain/XmlExtensions.kt b/src/main/kotlin/com/betomorrow/gradle/wording/domain/XmlExtensions.kt index 7ba20ed..6925850 100644 --- a/src/main/kotlin/com/betomorrow/gradle/wording/domain/XmlExtensions.kt +++ b/src/main/kotlin/com/betomorrow/gradle/wording/domain/XmlExtensions.kt @@ -1,6 +1,5 @@ package com.betomorrow.gradle.wording.domain -import com.sun.org.apache.xml.internal.serializer.OutputPropertiesFactory import org.w3c.dom.Document import org.w3c.dom.Element import org.w3c.dom.Node @@ -32,8 +31,8 @@ fun writeToFile(document : Document, path: String) { transformer.setOutputProperty(OutputKeys.INDENT, "yes") transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,"yes"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - transformer.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, "4") - transformer.setOutputProperty(OutputPropertiesFactory.S_KEY_LINE_SEPARATOR, "4") + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4") + transformer.setOutputProperty("{http://xml.apache.org/xslt}line-separator", "4") val domSource = DOMSource(document) val streamResult = StreamResult(File(path)) From c1e3079d6384bc73d558fe5992ab3543e50054c2 Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 15:04:31 +0200 Subject: [PATCH 3/7] Upgrade gradle-plugin-publish to latest version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3531c43..1ca933b 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { } } dependencies { - classpath "com.gradle.publish:plugin-publish-plugin:0.9.7" + classpath "com.gradle.publish:plugin-publish-plugin:0.15.0" } } From 679bb64dee476504766abd71707cbe3faf071703 Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 15:05:16 +0200 Subject: [PATCH 4/7] Bump version number --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1ca933b..46b4d4d 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ apply plugin: 'kotlin' apply plugin: 'maven-publish' group 'com.betomorrow.gradle' -version '1.3.3' +version '1.3.4' repositories { mavenCentral() From 8ef507570e4ff640ba244abc09e64ed1eeec390e Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 15:37:05 +0200 Subject: [PATCH 5/7] Update plugin declaration --- build.gradle | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 46b4d4d..84f3aa8 100644 --- a/build.gradle +++ b/build.gradle @@ -91,6 +91,12 @@ check.dependsOn integrationTest gradlePlugin { testSourceSets sourceSets.integrationTest + plugins { + wordingPlugin { + id = 'com.betomorrow.gradle.wording' + implementationClass = 'com.betomorrow.gradle.wording.WordingPlugin' + } + } } /** @@ -123,13 +129,10 @@ pluginBundle { tags = ['android', 'wording', 'plugin', 'tool'] plugins { - - libraryPlugin { + wordingPlugin { id = 'com.betomorrow.gradle.wording' displayName = 'Gradle Wording Plugin' description = 'Plugin to import wording from Google Sheet then integrate it in standard translations files.' } - } - } \ No newline at end of file From 78d46513ebb3b84ff00744a43335a395035f9e02 Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 15:38:36 +0200 Subject: [PATCH 6/7] Update sample with version bump --- sample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample/build.gradle b/sample/build.gradle index 0c41ffe..4381939 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.betomorrow.gradle:gradle-android-wording-plugin:1.3.3' + classpath 'gradle.plugin.com.betomorrow.gradle:gradle-android-wording-plugin:1.3.4' } } From e5d535656a146839d665441a0ce9e475341f65d3 Mon Sep 17 00:00:00 2001 From: Florian LASSONT Date: Wed, 4 Aug 2021 15:40:02 +0200 Subject: [PATCH 7/7] Update deployment --- build.gradle | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 84f3aa8..b46698f 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ apply plugin: 'java-gradle-plugin' apply plugin: 'kotlin' apply plugin: 'maven-publish' -group 'com.betomorrow.gradle' +group 'gradle.plugin.com.betomorrow.gradle' version '1.3.4' repositories { @@ -108,15 +108,6 @@ task sourceJar(type: Jar) { from sourceSets.main.allSource } -publishing { - publications { - BintrayPublication(MavenPublication) { - from components.java - artifact sourceJar - } - } -} - wrapper { gradleVersion = "5.1" distributionType = Wrapper.DistributionType.ALL