diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladleConfig.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladleConfig.kt index 869a9938..d6721998 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladleConfig.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladleConfig.kt @@ -51,13 +51,11 @@ interface FladleConfig { @get:Input val testTargets: ListProperty + // The maximum number of shards. Value will be overwritten by [maxTestShards] if both used in configuration @Deprecated( message = "testShards is deprecated. Use maxTestShards instead", replaceWith = ReplaceWith("maxTestShards"), ) - /** - * The maximum number of shards. Value will be overwritten by [maxTestShards] if both used in configuration - */ @get:Input @get:Optional val testShards: Property @@ -473,7 +471,8 @@ interface FladleConfig { @Internal fun getPresentProperties() = - this::class.memberProperties + this::class + .memberProperties .filter { when (val prop = it.call(this)) { is Property<*> -> prop.isPresent diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt index 6d3c1f92..61a9732f 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt @@ -24,7 +24,10 @@ class FladlePluginDelegate { target.tasks.register("flankAuth", FlankJavaExec::class.java) { doFirst { - target.layout.fladleDir.get().asFile.mkdirs() + target.layout.fladleDir + .get() + .asFile + .mkdirs() } classpath = project.fladleConfig args = listOf("auth", "login") @@ -34,7 +37,6 @@ class FladlePluginDelegate { } private fun checkMinimumGradleVersion() { - // Gradle 4.9 is required because we use the lazy task configuration API. if (GRADLE_MIN_VERSION > GradleVersion.current()) { throw GradleException("Fladle requires at minimum version $GRADLE_MIN_VERSION. Detected version ${GradleVersion.current()}.") } @@ -102,7 +104,14 @@ class FladlePluginDelegate { group = TASK_GROUP dependsOn(writeConfigProps) doLast { - println(writeConfigProps.get().fladleConfigFile.get().asFile.readText()) + println( + writeConfigProps + .get() + .fladleConfigFile + .get() + .asFile + .readText(), + ) } } @@ -110,7 +119,19 @@ class FladlePluginDelegate { if (useDefaultDir) setUpWorkingDir(configName) description = "Finds problems with the current configuration." classpath = project.fladleConfig - args = listOf("firebase", "test", "android", "doctor", "-c", writeConfigProps.get().fladleConfigFile.get().asFile.absolutePath) + args = + listOf( + "firebase", + "test", + "android", + "doctor", + "-c", + writeConfigProps + .get() + .fladleConfigFile + .get() + .asFile.absolutePath, + ) dependsOn(writeConfigProps) } @@ -122,13 +143,30 @@ class FladlePluginDelegate { args = if (project.hasProperty("dumpShards")) { listOf( - "firebase", "test", "android", "run", "-c", - writeConfigProps.get().fladleConfigFile.get().asFile.absolutePath, "--dump-shards", + "firebase", + "test", + "android", + "run", + "-c", + writeConfigProps + .get() + .fladleConfigFile + .get() + .asFile.absolutePath, + "--dump-shards", ) } else { listOf( - "firebase", "test", "android", "run", "-c", - writeConfigProps.get().fladleConfigFile.get().asFile.absolutePath, + "firebase", + "test", + "android", + "run", + "-c", + writeConfigProps + .get() + .fladleConfigFile + .get() + .asFile.absolutePath, ) } if (config.serviceAccountCredentials.isPresent) { diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankExecutionTask.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankExecutionTask.kt index 168c5712..c4605747 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankExecutionTask.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankExecutionTask.kt @@ -22,7 +22,12 @@ open class FlankExecutionTask private fun checkFilesExist(base: FladleConfig) { if (base.serviceAccountCredentials.isPresent) { - check(base.serviceAccountCredentials.get().asFile.exists()) { + check( + base.serviceAccountCredentials + .get() + .asFile + .exists(), + ) { "serviceAccountCredential file doesn't exist ${base.serviceAccountCredentials.get()}" } } diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankGradleExtension.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankGradleExtension.kt index 19c0f938..25b496d1 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankGradleExtension.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankGradleExtension.kt @@ -16,7 +16,9 @@ import javax.inject.Inject open class FlankGradleExtension @Inject - constructor(objects: ObjectFactory) : FladleConfig { + constructor( + objects: ObjectFactory, + ) : FladleConfig { companion object { const val FLANK_VERSION = "23.10.1" } diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt index f10ef850..e515f15d 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt @@ -10,7 +10,9 @@ import javax.inject.Inject ) open class FlankJavaExec @Inject - constructor(projectLayout: ProjectLayout) : JavaExec() { + constructor( + projectLayout: ProjectLayout, + ) : JavaExec() { init { group = FladlePluginDelegate.TASK_GROUP mainClass.set("ftl.Main") diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladleModuleExtension.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladleModuleExtension.kt index 510f5f54..a9c23b99 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladleModuleExtension.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladleModuleExtension.kt @@ -9,7 +9,9 @@ import javax.inject.Inject open class FulladleModuleExtension @Inject - constructor(objects: ObjectFactory) { + constructor( + objects: ObjectFactory, + ) { /** * When set to false, Fulladle will not automatically add this module to additionalTestApks. * diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladlePlugin.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladlePlugin.kt index 568feebb..c3901046 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladlePlugin.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FulladlePlugin.kt @@ -23,18 +23,12 @@ class FulladlePlugin : Plugin { val fulladleConfigureTask = root.tasks.register("configureFulladle") { var modulesEnabled = false - /** - * we will first configure all app modules - * then configure all library modules - * we force this order of configuration because - * app modules are better candidates to become - * root level test/app APKs, since they produce - * app APKs - * if no app module had tests or was enabled - * we will choose a library module to become - * a root level module, in which case we will - * have to check if it has its debugApk set - */ + // We first configure all app modules, then configure all library modules. + // We force this order because app modules are better candidates to become + // root level test/app APKs, since they produce app APKs. + // If no app module had tests or was enabled, we will choose a library module + // to become a root level module, in which case we will have to check if it + // has its debugApk set. doLast { // first configure all app modules root.subprojects { diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/RequiredDeviceKeyMissingException.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/RequiredDeviceKeyMissingException.kt index 31427c11..7682930f 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/RequiredDeviceKeyMissingException.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/RequiredDeviceKeyMissingException.kt @@ -1,3 +1,5 @@ package com.osacky.flank.gradle -data class RequiredDeviceKeyMissingException(val key: String) : Exception("Device should have '$key' key set to a value.") +data class RequiredDeviceKeyMissingException( + val key: String, +) : Exception("Device should have '$key' key set to a value.") diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/SanityConfigValidation.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/SanityConfigValidation.kt index 26d91f4a..10b51018 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/SanityConfigValidation.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/SanityConfigValidation.kt @@ -6,16 +6,22 @@ import java.lang.IllegalArgumentException fun checkIfSanityAndValidateConfigs(config: FladleConfig) = when (config) { - is FlankGradleExtension -> + is FlankGradleExtension -> { config.checkAndValidateConfig { option, name -> "Incorrect [$name] configuration. [$option] can't be used together with sanityRobo." } - is FladleConfigImpl -> + } + + is FladleConfigImpl -> { config.checkAndValidateConfig(config.name) { option, name -> "Incorrect [$name] configuration. [$option] can't be used together with sanityRobo. " + "To configure sanityRobo, add clearPropertiesForSanityRobo() to the [$name] configuration" } - else -> throw IllegalArgumentException("Unexpected configuration when validating parameters. Did not expect: $config.") + } + + else -> { + throw IllegalArgumentException("Unexpected configuration when validating parameters. Did not expect: $config.") + } } private fun FladleConfig.checkAndValidateConfig( diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlConfigWriterTask.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlConfigWriterTask.kt index 12373cbb..1d3b09e6 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlConfigWriterTask.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlConfigWriterTask.kt @@ -38,21 +38,18 @@ open class YamlConfigWriterTask @get:Input val additionalTestApks: ListProperty = - objects.listProperty(String::class.java) + objects + .listProperty(String::class.java) .convention(config.additionalTestApks) @OutputFile val fladleConfigFile: Provider = fladleDir.map { it.file("flank.yml") } @Internal - override fun getDescription(): String { - return "Writes a flank.yml file based on the current FlankGradleExtension configuration." - } + override fun getDescription(): String = "Writes a flank.yml file based on the current FlankGradleExtension configuration." @Internal - override fun getGroup(): String { - return FladlePluginDelegate.TASK_GROUP - } + override fun getGroup(): String = FladlePluginDelegate.TASK_GROUP @TaskAction fun writeFile() { diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlExtensions.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlExtensions.kt index 75d41a73..d0fc43af 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlExtensions.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlExtensions.kt @@ -35,7 +35,8 @@ fun StringBuilder.appendListProperty( fun StringBuilder.appendAdditionalProperty(property: Property) { if (property.isPresent) { - property.get() + property + .get() .split("\n") .map { " $it" } .forEach { appendLine(it) } diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlWriter.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlWriter.kt index 2262148f..d2083f64 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlWriter.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/YamlWriter.kt @@ -126,7 +126,8 @@ internal class YamlWriter { } else { appendListProperty(config.roboDirectives, name = "robo-directives") { val value = - it.getOrElse(2) { "" } + it + .getOrElse(2) { "" } .let { stringValue -> if (stringValue.isBlank()) "\"\"" else stringValue } appendLine(" ${it[0]}:${it[1]}: $value") } diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/SinceFlank.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/SinceFlank.kt index 142b9713..f35e6222 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/SinceFlank.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/SinceFlank.kt @@ -1,3 +1,6 @@ package com.osacky.flank.gradle.validation -annotation class SinceFlank(val version: String, val hasDefaultValue: Boolean = false) +annotation class SinceFlank( + val version: String, + val hasDefaultValue: Boolean = false, +) diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/ValidateOptions.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/ValidateOptions.kt index 9fead49d..0a48b133 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/ValidateOptions.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/ValidateOptions.kt @@ -11,7 +11,8 @@ fun validateOptionsUsed( // if using snapshot version default to the latest known version of flank for validation checks val configFlankVersion = if (flank.toLowerCase().endsWith("snapshot")) FLANK_VERSION.toVersion() else flank.toVersion() - config.getPresentProperties() + config + .getPresentProperties() .mapNotNull { property -> properties[property.name]?.let { property to it } } .forEach { (property, version) -> if (version > configFlankVersion) { @@ -25,11 +26,18 @@ fun validateOptionsUsed( private fun String.toVersion() = VersionNumber.parse(this) private val properties = - FladleConfig::class.memberProperties + FladleConfig::class + .memberProperties .asSequence() .map { it to it.getter.annotations } // we also need to exclude properties with default values to preserve backward compatibility // to be fixed .filter { it.second.any { annotation -> annotation is SinceFlank && !annotation.hasDefaultValue } } - .map { it.first.name to it.second.filterIsInstance().first().version.toVersion() } - .toMap() + .map { + it.first.name to + it.second + .filterIsInstance() + .first() + .version + .toVersion() + }.toMap() diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/VersionNumber.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/VersionNumber.kt index d17b4b3e..90d5d9cb 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/VersionNumber.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/validation/VersionNumber.kt @@ -40,13 +40,13 @@ class VersionNumber private constructor( if (patch != other.patch) { return patch - other.patch } - return qualifier.orEmpty().lowercase() + return qualifier + .orEmpty() + .lowercase() .compareTo(other.qualifier.orEmpty().lowercase()) } - override fun equals(other: Any?): Boolean { - return other is VersionNumber && compareTo(other) == 0 - } + override fun equals(other: Any?): Boolean = other is VersionNumber && compareTo(other) == 0 override fun hashCode(): Int { var result = major @@ -57,9 +57,7 @@ class VersionNumber private constructor( return result } - override fun toString(): String { - return scheme.format(this) - } + override fun toString(): String = scheme.format(this) /** * Returns the version number scheme. @@ -70,7 +68,9 @@ class VersionNumber private constructor( fun format(versionNumber: VersionNumber): String } - private abstract class AbstractScheme protected constructor(val depth: Int) : Scheme { + private abstract class AbstractScheme protected constructor( + val depth: Int, + ) : Scheme { override fun parse(versionString: String): VersionNumber { if (versionString.isEmpty()) { return UNKNOWN @@ -109,16 +109,15 @@ class VersionNumber private constructor( return UNKNOWN } - private class Scanner(val str: String) { + private class Scanner( + val str: String, + ) { var pos: Int = 0 - fun hasDigit(): Boolean { - return pos < str.length && Character.isDigit(str.get(pos)) - } + fun hasDigit(): Boolean = pos < str.length && Character.isDigit(str.get(pos)) - fun isSeparatorAndDigit(vararg separators: Char): Boolean { - return pos < str.length - 1 && oneOf(*separators) && Character.isDigit(str.get(pos + 1)) - } + fun isSeparatorAndDigit(vararg separators: Char): Boolean = + pos < str.length - 1 && oneOf(*separators) && Character.isDigit(str.get(pos + 1)) fun oneOf(vararg separators: Char): Boolean { val current = str.get(pos) @@ -148,22 +147,19 @@ class VersionNumber private constructor( pos++ } - fun remainder(): String? { - return if (pos == str.length) null else str.substring(pos) - } + fun remainder(): String? = if (pos == str.length) null else str.substring(pos) } } private class DefaultScheme : AbstractScheme(3) { - override fun format(versionNumber: VersionNumber): String { - return String.format( + override fun format(versionNumber: VersionNumber): String = + String.format( VERSION_TEMPLATE, versionNumber.major, versionNumber.minor, versionNumber.micro, if (versionNumber.qualifier == null) "" else "-" + versionNumber.qualifier, ) - } companion object { private const val VERSION_TEMPLATE = "%d.%d.%d%s" @@ -178,8 +174,8 @@ class VersionNumber private constructor( fun version( major: Int, minor: Int = 0, - ): VersionNumber { - return VersionNumber( + ): VersionNumber = + VersionNumber( major = major, minor = minor, micro = 0, @@ -187,10 +183,7 @@ class VersionNumber private constructor( qualifier = null, scheme = DEFAULT_SCHEME, ) - } - fun parse(versionString: String): VersionNumber { - return DEFAULT_SCHEME.parse(versionString) - } + fun parse(versionString: String): VersionNumber = DEFAULT_SCHEME.parse(versionString) } } diff --git a/sample-android-library/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt b/sample-android-library/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt index ab896993..0b6fe002 100644 --- a/sample-android-library/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt +++ b/sample-android-library/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt @@ -12,7 +12,5 @@ class ExampleInstrumentedTest { } @Test - fun runAndFail() { - throw RuntimeException("Test failed") - } + fun runAndFail(): Unit = throw RuntimeException("Test failed") } diff --git a/sample-flavors-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt b/sample-flavors-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt index 5d25f62c..efa6aae8 100644 --- a/sample-flavors-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt +++ b/sample-flavors-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt @@ -23,7 +23,5 @@ class ExampleInstrumentedTest { } @Test - fun runAndFail() { - throw RuntimeException("Test failed") - } + fun runAndFail(): Unit = throw RuntimeException("Test failed") } diff --git a/sample-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt b/sample-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt index 57d1a72f..cec17543 100644 --- a/sample-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt +++ b/sample-kotlin/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt @@ -22,7 +22,5 @@ class ExampleInstrumentedTest { } @Test - fun runAndFail() { - throw RuntimeException("Test failed") - } + fun runAndFail(): Unit = throw RuntimeException("Test failed") } diff --git a/sample/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt b/sample/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt index 2587b288..f71566f5 100644 --- a/sample/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt +++ b/sample/src/androidTest/java/com/osacky/flank/gradle/sample/ExampleInstrumentedTest.kt @@ -22,7 +22,5 @@ class ExampleInstrumentedTest { } @Test - fun runAndFail() { - throw RuntimeException("Test failed") - } + fun runAndFail(): Unit = throw RuntimeException("Test failed") }