From c09244245d2d826d55cef64743c3721ad03d8d1b Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:17:33 +0100 Subject: [PATCH 01/10] Add support for AGP 9.0.0 --- .java-version | 1 - README.md | 4 ++-- build.gradle.kts | 9 +++++---- buildSrc/src/main/kotlin/Dependencies.kt | 4 +++- gradle/wrapper/gradle-wrapper.properties | 2 +- manifestcheck/build.gradle.kts | 10 +++++----- .../config/TaskConfiguratorFactory.kt | 15 ++------------- ...ultiVariantPermissionCheckIntegrationTest.kt | 2 +- ...ngleVariantPermissionCheckIntegrationTest.kt | 2 +- .../testutil/AndroidProjectExtension.kt | 8 ++++---- .../permissioncheck/testutil/TestVersions.kt | 13 ++----------- plugin-core/build.gradle.kts | 7 +++++++ sample/app/build.gradle.kts | 17 +++++++++-------- sample/app/src/main/AndroidManifest.xml | 3 +-- sample/library/build.gradle.kts | 10 +++++----- sample/library/src/main/AndroidManifest.xml | 3 +-- 16 files changed, 49 insertions(+), 61 deletions(-) delete mode 100644 .java-version diff --git a/.java-version b/.java-version deleted file mode 100644 index 2dbc24b..0000000 --- a/.java-version +++ /dev/null @@ -1 +0,0 @@ -11.0 diff --git a/README.md b/README.md index c19b366..e22566e 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ To add the PermissionCheck plugin to your project, you have to add this block of ```groovy plugins { - id "com.telefonica.manifestcheck" version "1.0.2" + id "com.telefonica.manifestcheck" version "1.0.3" } ``` @@ -57,7 +57,7 @@ buildscript { } } dependencies { - classpath "com.telefonica:manifestcheck:1.0.2" + classpath "com.telefonica:manifestcheck:1.0.3" } } ``` diff --git a/build.gradle.kts b/build.gradle.kts index c49f908..1c2b3b1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.kotlin.dsl.embeddedKotlinVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.jetbrains.kotlin.gradle.dsl.JvmTarget buildscript { repositories { @@ -9,7 +10,7 @@ buildscript { mavenLocal() } dependencies { - classpath("com.android.tools.build:gradle:7.0.0") + classpath("com.android.tools.build:gradle:9.0.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$embeddedKotlinVersion") // classpath("com.telefonica:manifestcheck:+") // Uncomment to use the sample @@ -30,9 +31,9 @@ subprojects { } tasks.withType().configureEach { - kotlinOptions { - jvmTarget = "1.8" - freeCompilerArgs = listOf("-Xopt-in=kotlin.ExperimentalStdlibApi") + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + freeCompilerArgs.add("-Xopt-in=kotlin.ExperimentalStdlibApi") } } diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 9e61a26..7440a34 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -1,9 +1,11 @@ object Versions { // See https://mvnrepository.com - const val JUNIT_5 = "5.7.1" + const val JUNIT_5 = "5.13.4" + const val JUNIT_PLATFORM_LAUNCHER ="1.7.1" } object Dependencies { const val JUNIT_5_ENGINE = "org.junit.jupiter:junit-jupiter-engine:${Versions.JUNIT_5}" const val JUNIT_5_API = "org.junit.jupiter:junit-jupiter-api:${Versions.JUNIT_5}" const val JUNIT_5_PARAMS = "org.junit.jupiter:junit-jupiter-params:${Versions.JUNIT_5}" + const val JUNIT_PLATFORM_LAUNCHER = "org.junit.platform:junit-platform-launcher:${Versions.JUNIT_PLATFORM_LAUNCHER}" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a0f7639..7b0b78c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/manifestcheck/build.gradle.kts b/manifestcheck/build.gradle.kts index 60a32fc..28893e9 100644 --- a/manifestcheck/build.gradle.kts +++ b/manifestcheck/build.gradle.kts @@ -6,18 +6,19 @@ plugins { } group = "com.telefonica" -version = "1.0.2" // Also update the version in the README +version = "1.0.3" // Also update the version in the README val uber: Configuration by configurations.creating dependencies { compileOnly(gradleKotlinDsl()) - compileOnly("com.android.tools.build:gradle:7.0.0") + compileOnly("com.android.tools.build:gradle:9.0.0") uber(project(":plugin-configurator-v1")) uber(project(":plugin-core")) testRuntimeOnly(Dependencies.JUNIT_5_ENGINE) + testRuntimeOnly(Dependencies.JUNIT_PLATFORM_LAUNCHER) testImplementation(Dependencies.JUNIT_5_API) testImplementation(Dependencies.JUNIT_5_PARAMS) testImplementation(gradleKotlinDsl()) @@ -29,10 +30,12 @@ configurations { // Publish all modules as part of a single uber plugin JAR tasks.withType().configureEach { + dependsOn(":plugin-configurator-v1:jar", ":plugin-core:jar") from(uber.asSequence().filter { it.startsWith(rootDir) }.map { zipTree(it) }.asIterable()) } tasks.withType().configureEach { + useJUnitPlatform() dependsOn("publishToMavenLocal") } @@ -45,9 +48,6 @@ gradlePlugin { implementationClass = "io.github.simonschiller.permissioncheck.PermissionCheckPlugin" } } -} -pluginBundle { website = "https://github.com/Telefonica/android-permissioncheck" vcsUrl = "https://github.com/Telefonica/android-permissioncheck" - tags = listOf("manifestcheck", "permissions") } diff --git a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt index 72fae18..61abaed 100644 --- a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt +++ b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt @@ -1,20 +1,9 @@ package io.github.simonschiller.permissioncheck.config -import org.gradle.util.VersionNumber - /** Factory that produces different [TaskConfigurator]s to maintain backwards compatibility to older AGP versions. */ internal object TaskConfiguratorFactory { - fun getTaskConfigurator(): TaskConfigurator { - val version = VersionNumber.parse(getAndroidGradlePluginVersion()) - return when { - else -> TaskConfiguratorV1() - } - } - - private fun getAndroidGradlePluginVersion(): String { - val version = Class.forName("com.android.Version") - val field = version.getField("ANDROID_GRADLE_PLUGIN_VERSION") - return field.get(null) as String + // For AGP 7.0.0+ (including 9.0.0), always use V1 + return TaskConfiguratorV1() } } diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt b/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt index f8fa0b5..7627358 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt +++ b/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt @@ -298,7 +298,7 @@ class MultiVariantPermissionCheckIntegrationTest { assertEquals(TaskOutcome.UP_TO_DATE, buildResult.tasks.outcomeOf("checkPermissions")) val manifestFile = androidProject.appDir.resolve("src").resolve("main").resolve("AndroidManifest.xml") - manifestFile.writeText(manifestFile.readText().replace("simonschiller", "johndoe")) // Trigger change + manifestFile.writeText(manifestFile.readText().replace("\n\n + diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt b/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt index 077dd33..7dde024 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt +++ b/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt @@ -1,6 +1,5 @@ package io.github.simonschiller.permissioncheck.testutil -import org.gradle.util.VersionNumber import org.junit.jupiter.api.extension.ExtensionContext import org.junit.jupiter.params.provider.Arguments import org.junit.jupiter.params.provider.ArgumentsProvider @@ -11,29 +10,21 @@ class TestVersions : ArgumentsProvider { override fun provideArguments(context: ExtensionContext): Stream { val arguments = AGP_VERSIONS.flatMap { agpVersion -> GRADLE_VERSIONS - .filter { gradleVersion -> VersionNumber.parse(agpVersion).baseVersion isCompatibleWith VersionNumber.parse(gradleVersion).baseVersion } .map { gradleVersion -> Arguments.of(gradleVersion, agpVersion) } } return arguments.stream() } - // Checks if a AGP version (receiver) is compatible with a certain version of Gradle - private infix fun VersionNumber.isCompatibleWith(gradleVersion: VersionNumber) = when { - this >= VersionNumber.parse("7.0.0") -> gradleVersion >= VersionNumber.parse("7.0") - else -> false - } - companion object { // See https://gradle.org/releases private val GRADLE_VERSIONS = listOf( - "7.4.2", - "7.2", + "9.1.0", ) // See https://developer.android.com/studio/releases/gradle-plugin private val AGP_VERSIONS = listOf( - "7.0.0", + "9.0.0", ) val LATEST_GRADLE_VERSION = GRADLE_VERSIONS.first() diff --git a/plugin-core/build.gradle.kts b/plugin-core/build.gradle.kts index 8056d25..695c3d6 100644 --- a/plugin-core/build.gradle.kts +++ b/plugin-core/build.gradle.kts @@ -2,10 +2,17 @@ plugins { kotlin("jvm") } +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + dependencies { compileOnly(gradleKotlinDsl()) + compileOnly("com.android.tools.build:gradle:9.0.0") testRuntimeOnly(Dependencies.JUNIT_5_ENGINE) + testRuntimeOnly(Dependencies.JUNIT_PLATFORM_LAUNCHER) testImplementation(Dependencies.JUNIT_5_API) testImplementation(gradleKotlinDsl()) } diff --git a/sample/app/build.gradle.kts b/sample/app/build.gradle.kts index da4c9da..76d3cab 100644 --- a/sample/app/build.gradle.kts +++ b/sample/app/build.gradle.kts @@ -4,16 +4,17 @@ plugins { } android { - compileSdkVersion(33) + namespace = "com.telefonica.sampleapp" // Update to your actual package name + compileSdk = 36 - defaultConfig { - minSdkVersion(23) - targetSdkVersion(33) - } + defaultConfig { + minSdk = 24 + targetSdk = 36 + } - lintOptions { - checkOnly("") // Disable all Lint checks - } + lint { + abortOnError = false + } } dependencies { diff --git a/sample/app/src/main/AndroidManifest.xml b/sample/app/src/main/AndroidManifest.xml index f9b3697..9f2f1d6 100644 --- a/sample/app/src/main/AndroidManifest.xml +++ b/sample/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/sample/library/build.gradle.kts b/sample/library/build.gradle.kts index 3d9009d..ef39876 100644 --- a/sample/library/build.gradle.kts +++ b/sample/library/build.gradle.kts @@ -3,14 +3,14 @@ plugins { } android { - compileSdkVersion(30) + namespace = "com.telefonica.samplelibrary" // Update to your actual package name + compileSdk = 36 defaultConfig { - minSdkVersion(21) - targetSdkVersion(30) + minSdk = 24 } - lintOptions { - checkOnly("") // Disable all Lint checks + lint { + abortOnError = false } } diff --git a/sample/library/src/main/AndroidManifest.xml b/sample/library/src/main/AndroidManifest.xml index c962a7f..e81352a 100644 --- a/sample/library/src/main/AndroidManifest.xml +++ b/sample/library/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + From 31379fb3e93622100bbf907fe7614e05e3029f79 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:27:31 +0100 Subject: [PATCH 02/10] Update github actions --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea3376f..2579b1d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v6 - name: Cache Gradle dependencies - uses: actions/cache@v2 + uses: actions/cache@v5 with: path: | ~/.gradle/caches From 7f456be8668f6cd18c4b86afa685f56c20f7d126 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:43:17 +0100 Subject: [PATCH 03/10] Update version number --- README.md | 4 ++-- manifestcheck/build.gradle.kts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e22566e..b5cdc2b 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ To add the PermissionCheck plugin to your project, you have to add this block of ```groovy plugins { - id "com.telefonica.manifestcheck" version "1.0.3" + id "com.telefonica.manifestcheck" version "1.1.0" } ``` @@ -57,7 +57,7 @@ buildscript { } } dependencies { - classpath "com.telefonica:manifestcheck:1.0.3" + classpath "com.telefonica:manifestcheck:1.1.0" } } ``` diff --git a/manifestcheck/build.gradle.kts b/manifestcheck/build.gradle.kts index 28893e9..849fb9f 100644 --- a/manifestcheck/build.gradle.kts +++ b/manifestcheck/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } group = "com.telefonica" -version = "1.0.3" // Also update the version in the README +version = "1.1.0" // Also update the version in the README val uber: Configuration by configurations.creating From c3c1f01b0569f2257f1facc34c44855d739c806b Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:52:38 +0100 Subject: [PATCH 04/10] Update KDoc --- .../permissioncheck/config/TaskConfiguratorFactory.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt index 61abaed..7ef8568 100644 --- a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt +++ b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt @@ -1,9 +1,13 @@ package io.github.simonschiller.permissioncheck.config -/** Factory that produces different [TaskConfigurator]s to maintain backwards compatibility to older AGP versions. */ +/** + * Factory that produces a [TaskConfigurator]. + * + * It returns [TaskConfiguratorV1], as only V1 is supported for AGP 7.0.0+ (including 9.0.0). + */ internal object TaskConfiguratorFactory { fun getTaskConfigurator(): TaskConfigurator { - // For AGP 7.0.0+ (including 9.0.0), always use V1 + // Always use V1 for AGP 7.0.0+ (including 9.0.0) return TaskConfiguratorV1() } } From a8b660124dd9047f993aadcc6def876dd0c80340 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:54:32 +0100 Subject: [PATCH 05/10] Update buildSrc/src/main/kotlin/Dependencies.kt Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 7440a34..bcf1784 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -1,6 +1,6 @@ object Versions { // See https://mvnrepository.com const val JUNIT_5 = "5.13.4" - const val JUNIT_PLATFORM_LAUNCHER ="1.7.1" + const val JUNIT_PLATFORM_LAUNCHER = "1.7.1" } object Dependencies { From 0c098d3efc96571630cfff4a0ce64b125f9d68be Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 09:56:41 +0100 Subject: [PATCH 06/10] Update junit-platform-launcher version (copilot suggestion) --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index bcf1784..f924f92 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -1,6 +1,6 @@ object Versions { // See https://mvnrepository.com const val JUNIT_5 = "5.13.4" - const val JUNIT_PLATFORM_LAUNCHER = "1.7.1" + const val JUNIT_PLATFORM_LAUNCHER = "1.13.4" } object Dependencies { From 04a06f9ab13ae9d6480d50c191cd0bc67b1e292b Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 10:59:02 +0100 Subject: [PATCH 07/10] Remove TaskConfiguratorFactory --- .../permissioncheck/PermissionCheckPlugin.kt | 5 ++--- .../config/TaskConfiguratorFactory.kt | 13 ------------- 2 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt diff --git a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt index 50c56cc..c1091a4 100644 --- a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt +++ b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt @@ -1,10 +1,9 @@ package io.github.simonschiller.permissioncheck import com.android.build.gradle.AppPlugin -import io.github.simonschiller.permissioncheck.config.TaskConfiguratorFactory +import io.github.simonschiller.permissioncheck.config.TaskConfiguratorV1 import org.gradle.api.Plugin import org.gradle.api.Project -import java.util.* class PermissionCheckPlugin : Plugin { private lateinit var extension: PermissionCheckExtension @@ -18,7 +17,7 @@ class PermissionCheckPlugin : Plugin { return@configureEach // Only applicable to app modules } - val taskConfigurator = TaskConfiguratorFactory.getTaskConfigurator() + val taskConfigurator = TaskConfiguratorV1() taskConfigurator.configureTasks(project, extension) } } diff --git a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt b/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt deleted file mode 100644 index 7ef8568..0000000 --- a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorFactory.kt +++ /dev/null @@ -1,13 +0,0 @@ -package io.github.simonschiller.permissioncheck.config - -/** - * Factory that produces a [TaskConfigurator]. - * - * It returns [TaskConfiguratorV1], as only V1 is supported for AGP 7.0.0+ (including 9.0.0). - */ -internal object TaskConfiguratorFactory { - fun getTaskConfigurator(): TaskConfigurator { - // Always use V1 for AGP 7.0.0+ (including 9.0.0) - return TaskConfiguratorV1() - } -} From 2e92ab5e9ff3347c2dd56cee7c7d505ab60fd7c1 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 11:28:04 +0100 Subject: [PATCH 08/10] Update packages from io.github.simonschiller.permissioncheck to com.telefonica.manifestcheck --- manifestcheck/build.gradle.kts | 2 +- .../manifestcheck}/PermissionCheckPlugin.kt | 8 ++-- ...tiVariantPermissionCheckIntegrationTest.kt | 11 ++--- ...leVariantPermissionCheckIntegrationTest.kt | 11 ++--- .../testutil/AndroidProjectExtension.kt | 2 +- .../testutil/AndroidProjectExtensionTest.kt | 9 ++-- .../manifestcheck}/testutil/TestVersions.kt | 3 +- .../config/TaskConfiguratorV1.kt | 27 ----------- .../PermissionCheckExtension.kt | 2 +- .../manifestcheck}/PermissionCheckTask.kt | 22 ++++----- .../manifestcheck}/config/TaskConfigurator.kt | 10 ++--- .../internal/BaselineHandler.kt | 39 ++++++++++------ .../manifestcheck}/internal/ManifestParser.kt | 16 +++---- .../internal/PermissionChecker.kt | 6 +-- .../internal/data/Permissions.kt | 2 +- .../manifestcheck}/internal/data/Violation.kt | 2 +- .../internal/report/HtmlReporter.kt | 13 +++--- .../internal/report/LogReporter.kt | 7 +-- .../manifestcheck/internal/report/Reporter.kt | 7 +++ .../internal/report/XmlReporter.kt | 13 +++--- .../manifestcheck}/internal/util/XmlUtils.kt | 2 +- .../internal/report/Reporter.kt | 7 --- .../internal/BaselineHandlerTest.kt | 40 +++++++++++------ .../internal/ManifestParserTest.kt | 10 +++-- .../internal/PermissionCheckerTest.kt | 14 +++--- .../internal/data/PermissionsTest.kt | 45 ++++++++++++++----- .../internal/report/HtmlReporterTest.kt | 24 ++++++---- .../internal/report/LogReporterTest.kt | 18 +++++--- .../internal/report/XmlReporterTest.kt | 21 ++++++--- 29 files changed, 224 insertions(+), 169 deletions(-) rename manifestcheck/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/PermissionCheckPlugin.kt (79%) rename manifestcheck/src/test/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/MultiVariantPermissionCheckIntegrationTest.kt (98%) rename manifestcheck/src/test/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/SingleVariantPermissionCheckIntegrationTest.kt (97%) rename manifestcheck/src/test/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/testutil/AndroidProjectExtension.kt (99%) rename manifestcheck/src/test/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/testutil/AndroidProjectExtensionTest.kt (58%) rename manifestcheck/src/test/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/testutil/TestVersions.kt (92%) delete mode 100644 plugin-configurator-v1/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/PermissionCheckExtension.kt (95%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/PermissionCheckTask.kt (87%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/config/TaskConfigurator.kt (91%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/BaselineHandler.kt (75%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/ManifestParser.kt (77%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/PermissionChecker.kt (93%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/data/Permissions.kt (98%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/data/Violation.kt (98%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/report/HtmlReporter.kt (92%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/report/LogReporter.kt (78%) create mode 100644 plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/Reporter.kt rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/report/XmlReporter.kt (66%) rename plugin-core/src/main/kotlin/{io/github/simonschiller/permissioncheck => com/telefonica/manifestcheck}/internal/util/XmlUtils.kt (96%) delete mode 100644 plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/Reporter.kt rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt (92%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/ManifestParserTest.kt (85%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt (94%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/data/PermissionsTest.kt (69%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt (95%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/report/LogReporterTest.kt (88%) rename plugin-core/src/test/kotlin/{io/github => com/telefonica}/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt (84%) diff --git a/manifestcheck/build.gradle.kts b/manifestcheck/build.gradle.kts index 849fb9f..25b375f 100644 --- a/manifestcheck/build.gradle.kts +++ b/manifestcheck/build.gradle.kts @@ -45,7 +45,7 @@ gradlePlugin { id = "com.telefonica.manifestcheck" displayName = "ManifestCheck" description = "ManifestCheck is a Gradle plugin that helps you catch Android permission/feature regressions automatically." - implementationClass = "io.github.simonschiller.permissioncheck.PermissionCheckPlugin" + implementationClass = "com.telefonica.manifestcheck.PermissionCheckPlugin" } } website = "https://github.com/Telefonica/android-permissioncheck" diff --git a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt b/manifestcheck/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckPlugin.kt similarity index 79% rename from manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt rename to manifestcheck/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckPlugin.kt index c1091a4..2e18ba3 100644 --- a/manifestcheck/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckPlugin.kt +++ b/manifestcheck/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckPlugin.kt @@ -1,7 +1,6 @@ -package io.github.simonschiller.permissioncheck +package com.telefonica.manifestcheck import com.android.build.gradle.AppPlugin -import io.github.simonschiller.permissioncheck.config.TaskConfiguratorV1 import org.gradle.api.Plugin import org.gradle.api.Project @@ -17,8 +16,9 @@ class PermissionCheckPlugin : Plugin { return@configureEach // Only applicable to app modules } - val taskConfigurator = TaskConfiguratorV1() + val taskConfigurator = + _root_ide_package_.com.telefonica.simonschiller.permissioncheck.config.TaskConfiguratorV1() taskConfigurator.configureTasks(project, extension) } } -} +} \ No newline at end of file diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt similarity index 98% rename from manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt rename to manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt index 7627358..8021c7a 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/MultiVariantPermissionCheckIntegrationTest.kt +++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt @@ -1,8 +1,8 @@ -package io.github.simonschiller.permissioncheck +package com.telefonica.manifestcheck -import io.github.simonschiller.permissioncheck.testutil.AndroidProjectExtension -import io.github.simonschiller.permissioncheck.testutil.TestVersions -import io.github.simonschiller.permissioncheck.testutil.outcomeOf +import com.telefonica.manifestcheck.testutil.AndroidProjectExtension +import com.telefonica.manifestcheck.testutil.TestVersions +import com.telefonica.manifestcheck.testutil.outcomeOf import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.gradle.testkit.runner.TaskOutcome import org.junit.jupiter.api.Assertions.* @@ -14,7 +14,8 @@ class MultiVariantPermissionCheckIntegrationTest { @JvmField @RegisterExtension - val androidProject = AndroidProjectExtension() + val androidProject = + AndroidProjectExtension() @ParameterizedTest @ArgumentsSource(TestVersions::class) diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/SingleVariantPermissionCheckIntegrationTest.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt similarity index 97% rename from manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/SingleVariantPermissionCheckIntegrationTest.kt rename to manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt index dfc5c15..5b6725b 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/SingleVariantPermissionCheckIntegrationTest.kt +++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt @@ -1,8 +1,8 @@ -package io.github.simonschiller.permissioncheck +package com.telefonica.manifestcheck -import io.github.simonschiller.permissioncheck.testutil.AndroidProjectExtension -import io.github.simonschiller.permissioncheck.testutil.TestVersions -import io.github.simonschiller.permissioncheck.testutil.outcomeOf +import com.telefonica.manifestcheck.testutil.AndroidProjectExtension +import com.telefonica.manifestcheck.testutil.TestVersions +import com.telefonica.manifestcheck.testutil.outcomeOf import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.gradle.testkit.runner.TaskOutcome import org.junit.jupiter.api.Assertions.* @@ -14,7 +14,8 @@ class SingleVariantPermissionCheckIntegrationTest { @JvmField @RegisterExtension - val androidProject = AndroidProjectExtension() + val androidProject = + AndroidProjectExtension() @ParameterizedTest @ArgumentsSource(TestVersions::class) diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtension.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtension.kt similarity index 99% rename from manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtension.kt rename to manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtension.kt index 39ccb7b..47314d5 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtension.kt +++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtension.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.testutil +package com.telefonica.manifestcheck.testutil import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.gradle.testkit.runner.BuildResult diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtensionTest.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtensionTest.kt similarity index 58% rename from manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtensionTest.kt rename to manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtensionTest.kt index 9cd0b4c..1fc2bd7 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/AndroidProjectExtensionTest.kt +++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/AndroidProjectExtensionTest.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.testutil +package com.telefonica.manifestcheck.testutil import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.RegisterExtension @@ -7,15 +7,16 @@ class AndroidProjectExtensionTest { @JvmField @RegisterExtension - val androidProject = AndroidProjectExtension() + val androidProject = + AndroidProjectExtension() @Test fun `AndroidProjectExtension creates project that works correctly`() { androidProject.runTask( "tasks", "--all", - gradleVersion = TestVersions.LATEST_GRADLE_VERSION, - agpVersion = TestVersions.LATEST_AGP_VERSION + gradleVersion = TestVersions.Companion.LATEST_GRADLE_VERSION, + agpVersion = TestVersions.Companion.LATEST_AGP_VERSION ) } } diff --git a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/TestVersions.kt similarity index 92% rename from manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt rename to manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/TestVersions.kt index 7dde024..5780fc0 100644 --- a/manifestcheck/src/test/kotlin/io/github/simonschiller/permissioncheck/testutil/TestVersions.kt +++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/testutil/TestVersions.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.testutil +package com.telefonica.manifestcheck.testutil import org.junit.jupiter.api.extension.ExtensionContext import org.junit.jupiter.params.provider.Arguments @@ -7,6 +7,7 @@ import java.util.stream.Stream class TestVersions : ArgumentsProvider { + @Suppress("DEPRECATION") override fun provideArguments(context: ExtensionContext): Stream { val arguments = AGP_VERSIONS.flatMap { agpVersion -> GRADLE_VERSIONS diff --git a/plugin-configurator-v1/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt b/plugin-configurator-v1/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt deleted file mode 100644 index 68c9313..0000000 --- a/plugin-configurator-v1/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt +++ /dev/null @@ -1,27 +0,0 @@ -package io.github.simonschiller.permissioncheck.config - -import com.android.build.api.artifact.SingleArtifact -import com.android.build.api.variant.AndroidComponentsExtension -import io.github.simonschiller.permissioncheck.PermissionCheckExtension -import org.gradle.api.Project - -/** Configures the tasks for AGP versions 7.0.0-alpha01 and above. */ -class TaskConfiguratorV1 : TaskConfigurator() { - - override fun configureTasks(project: Project, extension: PermissionCheckExtension) { - val compositeTask = registerCompositeTask(project, extension) - - val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java) - androidComponents.onVariants { variant -> - val variantTask = registerVariantTask(project, extension, variant.name) - variantTask.configure { task -> - task.mergedManifests.add(variant.artifacts.get(SingleArtifact.MERGED_MANIFEST)) - } - - compositeTask.configure { task -> - task.variants.add(variant.name) - task.mergedManifests.add(variant.artifacts.get(SingleArtifact.MERGED_MANIFEST)) - } - } - } -} diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckExtension.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckExtension.kt similarity index 95% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckExtension.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckExtension.kt index 7a14556..58036d0 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckExtension.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckExtension.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck +package com.telefonica.manifestcheck import org.gradle.api.file.* import org.gradle.api.model.ObjectFactory diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckTask.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckTask.kt similarity index 87% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckTask.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckTask.kt index 8fb01d8..e22c7e6 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/PermissionCheckTask.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/PermissionCheckTask.kt @@ -1,11 +1,11 @@ -package io.github.simonschiller.permissioncheck - -import io.github.simonschiller.permissioncheck.internal.BaselineHandler -import io.github.simonschiller.permissioncheck.internal.ManifestParser -import io.github.simonschiller.permissioncheck.internal.PermissionChecker -import io.github.simonschiller.permissioncheck.internal.report.HtmlReporter -import io.github.simonschiller.permissioncheck.internal.report.LogReporter -import io.github.simonschiller.permissioncheck.internal.report.XmlReporter +package com.telefonica.manifestcheck + +import com.telefonica.manifestcheck.internal.BaselineHandler +import com.telefonica.manifestcheck.internal.ManifestParser +import com.telefonica.manifestcheck.internal.PermissionChecker +import com.telefonica.manifestcheck.internal.report.HtmlReporter +import com.telefonica.manifestcheck.internal.report.LogReporter +import com.telefonica.manifestcheck.internal.report.XmlReporter import org.gradle.api.DefaultTask import org.gradle.api.GradleException import org.gradle.api.file.RegularFile @@ -66,7 +66,8 @@ open class PermissionCheckTask : DefaultTask() { val permissions = variants.get().zip(manifestPermissions).toMap() val baselineFile = baseline.get().asFile - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) // Create (or recreate) the baseline if needed if (recreate.get() || !baselineFile.exists()) { @@ -87,7 +88,8 @@ open class PermissionCheckTask : DefaultTask() { } // Make sure the current permissions match the ones from the baseline - val permissionChecker = PermissionChecker() + val permissionChecker = + PermissionChecker() val violations = permissions.mapValues { (variantName, variantPermissions) -> permissionChecker.findViolations(baselinePermissions.getValue(variantName), variantPermissions, strict.get()) } diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfigurator.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfigurator.kt similarity index 91% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfigurator.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfigurator.kt index eec6898..e4ad1b7 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/config/TaskConfigurator.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfigurator.kt @@ -1,11 +1,11 @@ -package io.github.simonschiller.permissioncheck.config +package com.telefonica.manifestcheck.config -import io.github.simonschiller.permissioncheck.PermissionCheckExtension -import io.github.simonschiller.permissioncheck.PermissionCheckTask +import com.telefonica.manifestcheck.PermissionCheckExtension +import com.telefonica.manifestcheck.PermissionCheckTask import org.gradle.api.Project import org.gradle.api.tasks.TaskProvider import org.gradle.language.base.plugins.LifecycleBasePlugin -import java.util.* +import java.util.Locale /** * Base class to configure the Gradle tasks, different implementations are used to stay compatible with older AGP @@ -59,4 +59,4 @@ abstract class TaskConfigurator { task.strict.set(extension.strict) } } -} +} \ No newline at end of file diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandler.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt similarity index 75% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandler.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt index e7f171d..3cd1695 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandler.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt @@ -1,13 +1,13 @@ -package io.github.simonschiller.permissioncheck.internal - -import io.github.simonschiller.permissioncheck.internal.data.BasePermission -import io.github.simonschiller.permissioncheck.internal.data.Feature -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.util.appendElement -import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder -import io.github.simonschiller.permissioncheck.internal.util.forEach -import io.github.simonschiller.permissioncheck.internal.util.writeToFile +package com.telefonica.manifestcheck.internal + +import com.telefonica.manifestcheck.internal.data.BasePermission +import com.telefonica.manifestcheck.internal.data.Feature +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.util.appendElement +import com.telefonica.manifestcheck.internal.util.createDocumentBuilder +import com.telefonica.manifestcheck.internal.util.forEach +import com.telefonica.manifestcheck.internal.util.writeToFile import java.io.File internal class BaselineHandler(private val baselineFile: File) { @@ -26,7 +26,8 @@ internal class BaselineHandler(private val baselineFile: File) { } // Package changes into a XML document - val document = createDocumentBuilder().newDocument() + val document = createDocumentBuilder() + .newDocument() document.appendElement("baseline") { baseline.toSortedMap().forEach { (variantName, variantPermissions) -> @@ -68,7 +69,10 @@ internal class BaselineHandler(private val baselineFile: File) { regularPermissions.forEach { element -> val name = element.getAttribute("name") val maxSdkVersion = element.getAttribute("maxSdkVersion").toIntOrNull() - variantPermissions += Permission(name, maxSdkVersion) + variantPermissions += Permission( + name, + maxSdkVersion + ) } // Parse SDK 23 permissions for variant @@ -76,7 +80,10 @@ internal class BaselineHandler(private val baselineFile: File) { sdk23Permissions.forEach { element -> val name = element.getAttribute("name") val maxSdkVersion = element.getAttribute("maxSdkVersion").toIntOrNull() - variantPermissions += Sdk23Permission(name, maxSdkVersion) + variantPermissions += Sdk23Permission( + name, + maxSdkVersion + ) } val features = variant.getElementsByTagName("uses-feature") @@ -84,7 +91,11 @@ internal class BaselineHandler(private val baselineFile: File) { val name = element.getAttribute("name") val required = element.getAttribute("required").toBooleanStrictOrNull() val glEsVersion = element.getAttribute("glEsVersion").takeIf { it.isNotEmpty() } - variantPermissions += Feature(name, required, glEsVersion) + variantPermissions += Feature( + name, + required, + glEsVersion + ) } permissions[variantName] = variantPermissions diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParser.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/ManifestParser.kt similarity index 77% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParser.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/ManifestParser.kt index f761177..78ec8c8 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParser.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/ManifestParser.kt @@ -1,11 +1,11 @@ -package io.github.simonschiller.permissioncheck.internal - -import io.github.simonschiller.permissioncheck.internal.data.BasePermission -import io.github.simonschiller.permissioncheck.internal.data.Feature -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder -import io.github.simonschiller.permissioncheck.internal.util.forEach +package com.telefonica.manifestcheck.internal + +import com.telefonica.manifestcheck.internal.data.BasePermission +import com.telefonica.manifestcheck.internal.data.Feature +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.util.createDocumentBuilder +import com.telefonica.manifestcheck.internal.util.forEach import org.w3c.dom.Document import java.io.File diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionChecker.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/PermissionChecker.kt similarity index 93% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionChecker.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/PermissionChecker.kt index 08f3733..8ec9803 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionChecker.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/PermissionChecker.kt @@ -1,7 +1,7 @@ -package io.github.simonschiller.permissioncheck.internal +package com.telefonica.manifestcheck.internal -import io.github.simonschiller.permissioncheck.internal.data.BasePermission -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.data.BasePermission +import com.telefonica.manifestcheck.internal.data.Violation internal class PermissionChecker { diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Permissions.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Permissions.kt similarity index 98% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Permissions.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Permissions.kt index 0640eba..9289e30 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Permissions.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Permissions.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.internal.data +package com.telefonica.manifestcheck.internal.data import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Violation.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Violation.kt similarity index 98% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Violation.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Violation.kt index 36f5bea..be5ec0f 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/data/Violation.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/data/Violation.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.internal.data +package com.telefonica.manifestcheck.internal.data import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporter.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/HtmlReporter.kt similarity index 92% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporter.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/HtmlReporter.kt index a2bb1b8..221e7e0 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporter.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/HtmlReporter.kt @@ -1,14 +1,15 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.manifestcheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Violation -import io.github.simonschiller.permissioncheck.internal.util.appendElement -import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder -import io.github.simonschiller.permissioncheck.internal.util.writeToFile +import com.telefonica.manifestcheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.util.appendElement +import com.telefonica.manifestcheck.internal.util.createDocumentBuilder +import com.telefonica.manifestcheck.internal.util.writeToFile import org.w3c.dom.Element import org.w3c.dom.Node import java.io.File -internal class HtmlReporter(private val reportFile: File) : Reporter { +internal class HtmlReporter(private val reportFile: File) : + Reporter { // Only HTML report files are allowed init { diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporter.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/LogReporter.kt similarity index 78% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporter.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/LogReporter.kt index c46dff4..ec8d763 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporter.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/LogReporter.kt @@ -1,9 +1,10 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.manifestcheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.data.Violation import org.gradle.api.logging.Logger -internal class LogReporter(private val logger: Logger) : Reporter { +internal class LogReporter(private val logger: Logger) : + Reporter { override fun report(violations: Map>) { val faultyVariants = violations.filterValues { it.isNotEmpty() } diff --git a/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/Reporter.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/Reporter.kt new file mode 100644 index 0000000..8b532d1 --- /dev/null +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/Reporter.kt @@ -0,0 +1,7 @@ +package com.telefonica.manifestcheck.internal.report + +import com.telefonica.manifestcheck.internal.data.Violation + +internal interface Reporter { + fun report(violations: Map>) +} diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporter.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/XmlReporter.kt similarity index 66% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporter.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/XmlReporter.kt index 048f759..65c6ba5 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporter.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/report/XmlReporter.kt @@ -1,12 +1,13 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.manifestcheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Violation -import io.github.simonschiller.permissioncheck.internal.util.appendElement -import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder -import io.github.simonschiller.permissioncheck.internal.util.writeToFile +import com.telefonica.manifestcheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.util.appendElement +import com.telefonica.manifestcheck.internal.util.createDocumentBuilder +import com.telefonica.manifestcheck.internal.util.writeToFile import java.io.File -internal class XmlReporter(private val reportFile: File) : Reporter { +internal class XmlReporter(private val reportFile: File) : + Reporter { // Only XML report files are allowed init { diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/util/XmlUtils.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/util/XmlUtils.kt similarity index 96% rename from plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/util/XmlUtils.kt rename to plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/util/XmlUtils.kt index 9dc4ac3..738ea54 100644 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/util/XmlUtils.kt +++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/util/XmlUtils.kt @@ -1,4 +1,4 @@ -package io.github.simonschiller.permissioncheck.internal.util +package com.telefonica.manifestcheck.internal.util import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/Reporter.kt b/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/Reporter.kt deleted file mode 100644 index e26a0df..0000000 --- a/plugin-core/src/main/kotlin/io/github/simonschiller/permissioncheck/internal/report/Reporter.kt +++ /dev/null @@ -1,7 +0,0 @@ -package io.github.simonschiller.permissioncheck.internal.report - -import io.github.simonschiller.permissioncheck.internal.data.Violation - -internal interface Reporter { - fun report(violations: Map>) -} diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt similarity index 92% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt index 10b8cf7..be94bee 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt @@ -1,7 +1,8 @@ -package io.github.simonschiller.permissioncheck.internal +package com.telefonica.simonschiller.permissioncheck.internal -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.BaselineHandler +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertTrue @@ -26,7 +27,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.WRITE_EXTERNAL_STORAGE", 26) ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to permissions)) val expectedBaselineContent = """ @@ -63,7 +65,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.INTERNET") ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to permissions)) val expectedBaselineContent = """ @@ -101,7 +104,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.WRITE_EXTERNAL_STORAGE", 26) ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to permissions)) val expectedBaselineContent = """ @@ -131,7 +135,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.INTERNET") ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to permissions)) val expectedBaselineContent = """ @@ -161,7 +166,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.WRITE_EXTERNAL_STORAGE", 26) ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to debugPermissions, "release" to releasePermissions)) val expectedBaselineContent = """ @@ -199,7 +205,8 @@ class BaselineHandlerTest { """.trimIndent()) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) val baseline = baselineHandler.deserialize() val debugPermissions = setOf( @@ -219,7 +226,8 @@ class BaselineHandlerTest { fun `Non-existent baseline file is interpreted as empty`() { val baselineFile = tempDir.resolve("permission-baseline.xml") - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) val baseline = baselineHandler.deserialize() assertTrue(baseline.isEmpty()) @@ -228,7 +236,11 @@ class BaselineHandlerTest { @Test fun `Exception is thrown if baseline file has wrong type`() { val baselineFile = tempDir.resolve("permission-baseline.json") - assertThrows { BaselineHandler(baselineFile) } + assertThrows { + BaselineHandler( + baselineFile + ) + } } @Test @@ -250,7 +262,8 @@ class BaselineHandlerTest { Sdk23Permission("android.permission.INTERNET") ) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(mapOf("debug" to debugPermissions)) val expectedBaselineContent = """ @@ -288,7 +301,8 @@ class BaselineHandlerTest { """.trimIndent()) - val baselineHandler = BaselineHandler(baselineFile) + val baselineHandler = + BaselineHandler(baselineFile) baselineHandler.serialize(emptyMap()) val expectedBaselineContent = """ diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParserTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/ManifestParserTest.kt similarity index 85% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParserTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/ManifestParserTest.kt index 6b24786..d17ebd4 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/ManifestParserTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/ManifestParserTest.kt @@ -1,7 +1,8 @@ -package io.github.simonschiller.permissioncheck.internal +package com.telefonica.simonschiller.permissioncheck.internal -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.ManifestParser +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows @@ -10,7 +11,8 @@ import java.io.File import java.io.FileNotFoundException class ManifestParserTest { - private val manifestParser = ManifestParser() + private val manifestParser = + ManifestParser() @TempDir lateinit var tempDir: File diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt similarity index 94% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt index 78bd9db..53223bb 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/PermissionCheckerTest.kt @@ -1,14 +1,16 @@ -package io.github.simonschiller.permissioncheck.internal +package com.telefonica.simonschiller.permissioncheck.internal -import io.github.simonschiller.permissioncheck.internal.data.BasePermission -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.PermissionChecker +import com.telefonica.manifestcheck.internal.data.BasePermission +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.data.Violation import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test class PermissionCheckerTest { - private val permissionChecker = PermissionChecker() + private val permissionChecker = + PermissionChecker() @Test fun `No violations are found if permissions match`() { diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/data/PermissionsTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/data/PermissionsTest.kt similarity index 69% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/data/PermissionsTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/data/PermissionsTest.kt index b475397..4a2137b 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/data/PermissionsTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/data/PermissionsTest.kt @@ -1,5 +1,7 @@ -package io.github.simonschiller.permissioncheck.internal.data +package com.telefonica.simonschiller.permissioncheck.internal.data +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test @@ -7,42 +9,62 @@ class PermissionsTest { @Test fun `Same types of permissions with same content are equal`() { - val a = Permission("android.permission.INTERNET", 26) - val b = Permission("android.permission.INTERNET", 26) + val a = Permission( + "android.permission.INTERNET", + 26 + ) + val b = Permission( + "android.permission.INTERNET", + 26 + ) assertEquals(a, b) } @Test fun `Different types of permissions with same content are not equal`() { - val a = Permission("android.permission.INTERNET", 26) - val b = Sdk23Permission("android.permission.INTERNET", 26) + val a = Permission( + "android.permission.INTERNET", + 26 + ) + val b = Sdk23Permission( + "android.permission.INTERNET", + 26 + ) assertNotEquals(a, b) } @Test fun `XML representation is correct for normal permissions`() { - val permission = Permission("android.permission.INTERNET") + val permission = + Permission("android.permission.INTERNET") val xml = """""" assertEquals(xml, permission.toString()) } @Test fun `XML representation is correct for normal permissions with max SDK`() { - val permission = Permission("android.permission.INTERNET", 26) + val permission = Permission( + "android.permission.INTERNET", + 26 + ) val xml = """""" assertEquals(xml, permission.toString()) } @Test fun `XML representation is correct for SDK 23 permissions`() { - val permission = Sdk23Permission("android.permission.INTERNET") + val permission = + Sdk23Permission("android.permission.INTERNET") val xml = """""" assertEquals(xml, permission.toString()) } @Test fun `XML representation is correct for SDK 23 permissions with max SDK`() { - val permission = Sdk23Permission("android.permission.INTERNET", 26) + val permission = Sdk23Permission( + "android.permission.INTERNET", + 26 + ) val xml = """""" assertEquals(xml, permission.toString()) } @@ -67,7 +89,10 @@ class PermissionsTest { @Test fun `Copying permissions works`() { - val original = Permission("android.permission.CAMERA", 26) + val original = Permission( + "android.permission.CAMERA", + 26 + ) val exactCopy = original.copy(required = false, glEsVersion = null) assertEquals(original, exactCopy) diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt similarity index 95% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt index e24b777..cf4ccd8 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/HtmlReporterTest.kt @@ -1,8 +1,9 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.simonschiller.permissioncheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.report.HtmlReporter +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.data.Violation import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test @@ -18,7 +19,8 @@ class HtmlReporterTest { @Test fun `Empty report is generated when there are no issues`() { val reportFile = tempDir.resolve("report.html") - val reporter = HtmlReporter(reportFile) + val reporter = + HtmlReporter(reportFile) val violations = emptyList() reporter.report(mapOf("debug" to violations, "release" to violations)) @@ -67,7 +69,8 @@ class HtmlReporterTest { @Test fun `Generated report contains all violations when they exist`() { val reportFile = tempDir.resolve("report.html") - val reporter = HtmlReporter(reportFile) + val reporter = + HtmlReporter(reportFile) val debugViolations = listOf( Violation.Added(Permission("android.permission.CAMERA")), @@ -155,7 +158,8 @@ class HtmlReporterTest { @Test fun `Report is generated correctly if some of the variants contain no issues`() { val reportFile = tempDir.resolve("report.html") - val reporter = HtmlReporter(reportFile) + val reporter = + HtmlReporter(reportFile) val debugViolations = listOf( Violation.Added(Permission("android.permission.CAMERA")), @@ -223,7 +227,11 @@ class HtmlReporterTest { @Test fun `Exception is thrown if report file has wrong type`() { val reportFile = tempDir.resolve("report.json") - assertThrows { HtmlReporter(reportFile) } + assertThrows { + HtmlReporter( + reportFile + ) + } } private fun String.removeStyleTags(): String { diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporterTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/LogReporterTest.kt similarity index 88% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporterTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/LogReporterTest.kt index fc260b7..ae19577 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/LogReporterTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/LogReporterTest.kt @@ -1,8 +1,9 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.simonschiller.permissioncheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.report.LogReporter +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.data.Violation import org.gradle.api.logging.Logger import org.gradle.api.logging.Logging import org.junit.jupiter.api.Assertions.assertEquals @@ -13,7 +14,8 @@ class LogReporterTest { @Test fun `Success message is logged when there are no violations`() { val logger = TestLogger() - val reporter = LogReporter(logger) + val reporter = + LogReporter(logger) val violations = emptyList() reporter.report(mapOf("debug" to violations, "release" to violations)) @@ -27,7 +29,8 @@ class LogReporterTest { @Test fun `Violations are logged if they exist`() { val logger = TestLogger() - val reporter = LogReporter(logger) + val reporter = + LogReporter(logger) val violations = listOf( Violation.Added(Permission("android.permission.CAMERA")), @@ -50,7 +53,8 @@ class LogReporterTest { @Test fun `Violations for multiple variants are logged separately`() { val logger = TestLogger() - val reporter = LogReporter(logger) + val reporter = + LogReporter(logger) val debugViolations = listOf( Violation.Added(Permission("android.permission.CAMERA")), diff --git a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt similarity index 84% rename from plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt rename to plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt index 941b192..b971c3b 100644 --- a/plugin-core/src/test/kotlin/io/github/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt +++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/report/XmlReporterTest.kt @@ -1,8 +1,9 @@ -package io.github.simonschiller.permissioncheck.internal.report +package com.telefonica.simonschiller.permissioncheck.internal.report -import io.github.simonschiller.permissioncheck.internal.data.Permission -import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission -import io.github.simonschiller.permissioncheck.internal.data.Violation +import com.telefonica.manifestcheck.internal.report.XmlReporter +import com.telefonica.manifestcheck.internal.data.Permission +import com.telefonica.manifestcheck.internal.data.Sdk23Permission +import com.telefonica.manifestcheck.internal.data.Violation import org.gradle.kotlin.dsl.support.normaliseLineSeparators import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test @@ -18,7 +19,8 @@ class XmlReporterTest { @Test fun `Empty report is generated when there are no issues`() { val reportFile = tempDir.resolve("report.xml") - val reporter = XmlReporter(reportFile) + val reporter = + XmlReporter(reportFile) val violations = emptyList() reporter.report(mapOf("debug" to violations, "release" to violations)) @@ -37,7 +39,8 @@ class XmlReporterTest { @Test fun `Generated report contains all violations when they exist`() { val reportFile = tempDir.resolve("report.xml") - val reporter = XmlReporter(reportFile) + val reporter = + XmlReporter(reportFile) val debugViolations = listOf( Violation.Added(Permission("android.permission.CAMERA")), @@ -77,6 +80,10 @@ class XmlReporterTest { @Test fun `Exception is thrown if report file has wrong type`() { val reportFile = tempDir.resolve("report.json") - assertThrows { XmlReporter(reportFile) } + assertThrows { + XmlReporter( + reportFile + ) + } } } From ad10fbfa50df01f4861b59b44930e49a8c811905 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 11:32:42 +0100 Subject: [PATCH 09/10] Update packages from io.github.simonschiller.permissioncheck to com.telefonica.manifestcheck --- .../config/TaskConfiguratorV1.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt diff --git a/plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt b/plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt new file mode 100644 index 0000000..da6ce7b --- /dev/null +++ b/plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt @@ -0,0 +1,28 @@ +package com.telefonica.simonschiller.permissioncheck.config + +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.variant.AndroidComponentsExtension +import com.telefonica.manifestcheck.PermissionCheckExtension +import com.telefonica.manifestcheck.config.TaskConfigurator +import org.gradle.api.Project + +/** Configures the tasks for AGP versions 7.0.0-alpha01 and above. */ +class TaskConfiguratorV1 : TaskConfigurator() { + + override fun configureTasks(project: Project, extension: PermissionCheckExtension) { + val compositeTask = registerCompositeTask(project, extension) + + val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java) + androidComponents.onVariants { variant -> + val variantTask = registerVariantTask(project, extension, variant.name) + variantTask.configure { task -> + task.mergedManifests.add(variant.artifacts.get(SingleArtifact.MERGED_MANIFEST)) + } + + compositeTask.configure { task -> + task.variants.add(variant.name) + task.mergedManifests.add(variant.artifacts.get(SingleArtifact.MERGED_MANIFEST)) + } + } + } +} From 880066c1082c5150974774abd3d09ba0c32dd9b5 Mon Sep 17 00:00:00 2001 From: Jose Rubio Date: Tue, 10 Feb 2026 11:47:09 +0100 Subject: [PATCH 10/10] Update packages from io.github.simonschiller.permissioncheck to com.telefonica.manifestcheck --- .../config/TaskConfiguratorV1.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename plugin-configurator-v1/src/main/kotlin/com/telefonica/{simonschiller/permissioncheck => manifestcheck}/config/TaskConfiguratorV1.kt (90%) diff --git a/plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt b/plugin-configurator-v1/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfiguratorV1.kt similarity index 90% rename from plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt rename to plugin-configurator-v1/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfiguratorV1.kt index da6ce7b..dd1e1c3 100644 --- a/plugin-configurator-v1/src/main/kotlin/com/telefonica/simonschiller/permissioncheck/config/TaskConfiguratorV1.kt +++ b/plugin-configurator-v1/src/main/kotlin/com/telefonica/manifestcheck/config/TaskConfiguratorV1.kt @@ -1,9 +1,8 @@ -package com.telefonica.simonschiller.permissioncheck.config +package com.telefonica.manifestcheck.config import com.android.build.api.artifact.SingleArtifact import com.android.build.api.variant.AndroidComponentsExtension import com.telefonica.manifestcheck.PermissionCheckExtension -import com.telefonica.manifestcheck.config.TaskConfigurator import org.gradle.api.Project /** Configures the tasks for AGP versions 7.0.0-alpha01 and above. */ @@ -25,4 +24,4 @@ class TaskConfiguratorV1 : TaskConfigurator() { } } } -} +} \ No newline at end of file