diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 867e7650..95c5769b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: - name: 'HTML ES5 test' run: | npm install -g jshint - java -cp sdk/build/intermediates/javac/release/classes com.hcaptcha.sdk.HCaptchaHtml > sdk/build/hcaptcha-form.html + java -cp sdk/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes com.hcaptcha.sdk.HCaptchaHtml > sdk/build/hcaptcha-form.html jshint --extract=always sdk/build/hcaptcha-form.html - name: 'JitPack Test' run: ./gradlew publishReleasePublicationToMavenLocal diff --git a/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaHtml.java b/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaHtml.java index ebd9ee7d..33a757b7 100644 --- a/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaHtml.java +++ b/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaHtml.java @@ -2,8 +2,6 @@ import androidx.annotation.NonNull; -import com.hcaptcha.sdk.IHCaptchaHtmlProvider; - class TestHCaptchaHtml implements IHCaptchaHtmlProvider { @Override diff --git a/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaVerifier.java b/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaVerifier.java index 2a4f4f6b..2f5fdc61 100644 --- a/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaVerifier.java +++ b/benchmark/src/androidTest/java/com/hcaptcha/sdk/TestHCaptchaVerifier.java @@ -2,10 +2,12 @@ import android.app.Activity; +import androidx.annotation.NonNull; + public class TestHCaptchaVerifier implements IHCaptchaVerifier { @Override - public void startVerification(Activity activity) { + public void startVerification(@NonNull Activity activity) { // no implementation need for performance measurement } diff --git a/build.gradle b/build.gradle index 77c8e0a8..895364ef 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.1.4' - classpath 'androidx.benchmark:benchmark-gradle-plugin:1.2.4' + classpath 'com.android.tools.build:gradle:8.7.3' + classpath 'androidx.benchmark:benchmark-gradle-plugin:1.3.3' classpath 'com.slack.keeper:keeper:0.16.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } diff --git a/gradle/shared/code-quality.gradle b/gradle/shared/code-quality.gradle index efe77442..104f8faf 100644 --- a/gradle/shared/code-quality.gradle +++ b/gradle/shared/code-quality.gradle @@ -2,7 +2,7 @@ checkstyle { toolVersion = '8.45.1' } -task checkstyle(type: Checkstyle) { +tasks.register('checkstyle', Checkstyle) { description 'Check code standard' group 'verification' configFile file("${rootDir}/gradle/config/checkstyle.xml") @@ -19,7 +19,7 @@ pmd { toolVersion = "6.51.0" } -task pmd(type: Pmd) { +tasks.register('pmd', Pmd) { ruleSetFiles = files("${project.rootDir}/gradle/config/pmd.xml") ignoreFailures = false ruleSets = [] @@ -56,7 +56,8 @@ gradle.taskGraph.beforeTask { task -> } // https://www.rallyhealth.com/coding/code-coverage-for-android-testing -task jacocoUnitTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) { +tasks.register('jacocoUnitTestReport', JacocoReport) { + dependsOn['testDebugUnitTest'] def coverageSourceDirs = [ "src/main/java" ] @@ -79,6 +80,8 @@ task jacocoUnitTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) xml.required = true html.required = true } + + inputs.files(tasks.named("testDebugUnitTest").get().outputs) } check.dependsOn('checkstyle', 'pmd', 'jacocoUnitTestReport') @@ -93,16 +96,16 @@ sonarqube { property "sonar.sourceEncoding", "utf-8" property "sonar.sources", "src/main" - property "sonar.java.binaries", "${project.buildDir}/intermediates/javac/debug/classes" + property "sonar.java.binaries", layout.buildDirectory.dir("intermediates/javac/debug/compileDebugJavaWithJavac/classes").get().asFile.absolutePath property "sonar.tests", ["src/test/", "../test/src/androidTest/"] - property "sonar.android.lint.report", "${project.buildDir}/outputs/lint-results.xml" - property "sonar.java.spotbugs.reportPaths", ["${project.buildDir}/reports/spotbugs/debug.xml", "${project.buildDir}/reports/spotbugs/release.xml"] - property "sonar.java.pmd.reportPaths", "${project.buildDir}/reports/pmd/pmd.xml" - property "sonar.java.checkstyle.reportPaths", "${project.buildDir}/reports/checkstyle/checkstyle.xml" - property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/jacocoUnitTestReport.xml" + property "sonar.android.lint.report", layout.buildDirectory.dir("outputs/lint-results.xml").get().asFile.absolutePath + property "sonar.java.spotbugs.reportPaths", ["debug", "release"].collect { layout.buildDirectory.dir("reports/spotbugs/${it}.xml").get().asFile.absolutePath } + property "sonar.java.pmd.reportPaths", layout.buildDirectory.dir("reports/pmd/pmd.xml").get().asFile.absolutePath + property "sonar.java.checkstyle.reportPaths", layout.buildDirectory.dir("reports/checkstyle/checkstyle.xml").get().asFile.absolutePath + property "sonar.coverage.jacoco.xmlReportPaths", layout.buildDirectory.dir("reports/jacoco/jacocoUnitTestReport.xml").get().asFile.absolutePath } } -project.tasks["sonarqube"].dependsOn "check" +project.tasks.named("sonarqube").configure { dependsOn "check" } diff --git a/gradle/shared/html-java-gen.gradle b/gradle/shared/html-java-gen.gradle index e96b8ff1..26b81897 100644 --- a/gradle/shared/html-java-gen.gradle +++ b/gradle/shared/html-java-gen.gradle @@ -1,8 +1,8 @@ android.libraryVariants.all { variant -> def packageName = android.namespace def variantName = variant.name.capitalize() - def outputDir = file("${project.buildDir}/generated/source/hcaptcha/${variant.name}/${packageName.replaceAll('\\.', '/')}") - def generateTask = project.task("generate${variantName}JavaClassFromStaticHtml") { + def outputDir = layout.buildDirectory.dir("generated/source/hcaptcha/${variant.name}/${packageName.replaceAll('\\.', '/')}").get().asFile + def generateTask = tasks.register("generate${variantName}JavaClassFromStaticHtml") { group 'Generate' description "Generate HTML java class" @@ -27,5 +27,5 @@ android.libraryVariants.all { variant -> } // preBuild.dependsOn generateTask - variant.registerJavaGeneratingTask(generateTask, outputDir) + variant.registerJavaGeneratingTask(generateTask.get(), outputDir) } \ No newline at end of file diff --git a/gradle/shared/size-check.gradle b/gradle/shared/size-check.gradle index 6bf0817a..0f97beee 100644 --- a/gradle/shared/size-check.gradle +++ b/gradle/shared/size-check.gradle @@ -1,6 +1,6 @@ android.libraryVariants.all { variant -> def variantName = variant.name.capitalize() - project.task("report${variantName}AarSize") { + tasks.register("report${variantName}AarSize") { group 'Help' description "Report ${variant.name} AAR size" dependsOn variant.packageLibraryProvider @@ -12,7 +12,7 @@ android.libraryVariants.all { variant -> } } - project.tasks.findByName("check").dependsOn(project.task("check${variantName}AarSize") { + tasks.register("check${variantName}AarSize") { group 'Verification' description "Checks ${variant.name} AAR size doesn't exceed ${project.ext}Kb" dependsOn variant.packageLibraryProvider @@ -24,5 +24,7 @@ android.libraryVariants.all { variant -> throw new GradleException("${aarPath} size exceeded! ${aarSizeKb}Kbyte > ${MAX_AAR_SIZE_KB}Kbyte") } } - }) + } + + tasks.named("check").configure { dependsOn "check${variantName}AarSize" } } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 84a0b92f..19cfad96 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-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/test/src/main/AndroidManifest.xml b/test/src/main/AndroidManifest.xml index a9f4be7f..462865ba 100644 --- a/test/src/main/AndroidManifest.xml +++ b/test/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ - + + android:exported="true" + tools:ignore="MissingClass">