From d19c7d3548e7db667c94f9424bb0ecc846a74a55 Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 19:51:35 +0300 Subject: [PATCH 1/7] Build with SDK 33, Gradle 8.1.1 and Android tools 8.0.1 --- app/AndroidManifest.xml | 4 +--- app/build.gradle | 1 + build.gradle | 4 ++-- config/android-common.gradle | 3 ++- config/coverage.gradle | 4 ++-- config/javadoc.gradle | 4 ++-- config/style.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- library/AndroidManifest.xml | 3 +-- 9 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml index 4f183f5c..055704ae 100644 --- a/app/AndroidManifest.xml +++ b/app/AndroidManifest.xml @@ -11,9 +11,7 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. --> - + diff --git a/app/build.gradle b/app/build.gradle index 26ef381f..5a150e8f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,7 @@ apply from: '../config/android-common.gradle' apply from: '../config/keystore.gradle' android { + namespace 'net.openid.appauthdemo' defaultConfig { applicationId 'net.openid.appauthdemo' project.archivesBaseName = 'appauth-demoapp' diff --git a/build.gradle b/build.gradle index 1360114c..16eaa2a5 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:8.0.1' classpath 'org.ajoberstar.grgit:grgit-gradle:4.1.1' classpath 'org.jacoco:org.jacoco.core:0.8.7' } @@ -41,7 +41,7 @@ try { project.ext { minSdkVersion = 16 - compileSdkVersion = 31 + compileSdkVersion = 33 googleVersions = [ glide : '4.12.0', diff --git a/config/android-common.gradle b/config/android-common.gradle index 08ee0043..6b42c5d5 100644 --- a/config/android-common.gradle +++ b/config/android-common.gradle @@ -1,4 +1,5 @@ android { + namespace 'net.openid.appauth' compileSdkVersion rootProject.compileSdkVersion defaultConfig { minSdkVersion rootProject.minSdkVersion @@ -41,7 +42,7 @@ task jar(type: Copy, dependsOn:'bundleRelease') { // produces a JAR containing sources task sourcesJar(type: Jar, dependsOn:'generateReleaseSources') { from android.sourceSets.main.java.srcDirs - classifier = 'sources' + archiveClassifier = 'sources' } tasks.withType(JavaCompile) { diff --git a/config/coverage.gradle b/config/coverage.gradle index 4e589e5b..413b3447 100644 --- a/config/coverage.gradle +++ b/config/coverage.gradle @@ -14,8 +14,8 @@ task jacocoTestReport(type: JacocoReport, dependsOn: "testDebugUnitTest") { group = "Reporting" description = "Generate Jacoco coverage reports after running tests." reports { - xml.enabled = true - html.enabled = true + xml.required.set(true) + html.required.set(true) } // Class R is used, but usage will not be covered, so ignore this class from report afterEvaluate { diff --git a/config/javadoc.gradle b/config/javadoc.gradle index ac8d15e5..c1ae6ea9 100644 --- a/config/javadoc.gradle +++ b/config/javadoc.gradle @@ -9,7 +9,7 @@ dependencies { task androidJavadoc(type: JavaExec) { jvmArgs = ['--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED'] classpath files(project.android.getBootClasspath()) - main = 'jdk.javadoc.internal.tool.Main' + mainClass = 'jdk.javadoc.internal.tool.Main' ext.destinationDir = file("${project.buildDir}/docs/javadoc") args = ['-doctitle', "AppAuth for Android", '-use', @@ -25,7 +25,7 @@ task androidJavadoc(type: JavaExec) { } task javadocJar(type: Jar, dependsOn: androidJavadoc) { - classifier = 'javadoc' + archiveClassifier = 'javadoc' from androidJavadoc.ext.destinationDir } diff --git a/config/style.gradle b/config/style.gradle index e73817b6..323f0af9 100644 --- a/config/style.gradle +++ b/config/style.gradle @@ -10,7 +10,7 @@ task checkAllSource(type: Checkstyle) { afterEvaluate { source 'java' include '**/*.java' - classpath = files project.configurations.compile.files + classpath = files() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 55df8853..c017ac4b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ #Sat Jun 13 20:20:21 CEST 2020 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip diff --git a/library/AndroidManifest.xml b/library/AndroidManifest.xml index 31737510..40982c43 100644 --- a/library/AndroidManifest.xml +++ b/library/AndroidManifest.xml @@ -12,8 +12,7 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. --> - + From 50bbe7811b182c7c79b6fe853d5abd87d2523ecb Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 19:57:45 +0300 Subject: [PATCH 2/7] Fix workflow build with JDK 17 --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cc9dc883..c35b5460 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,11 +9,11 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: - java-version: '11' - distribution: 'adopt' + java-version: '17' + distribution: 'temurin' - name: Cache Gradle packages uses: actions/cache@v2 From a143c84e3ad1cc3f152f26e9a0500eca85c6b671 Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 19:58:00 +0300 Subject: [PATCH 3/7] Update workflow actions --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c35b5460..4e47b008 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 with: @@ -16,7 +16,7 @@ jobs: distribution: 'temurin' - name: Cache Gradle packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.gradle/caches @@ -29,4 +29,4 @@ jobs: run: ./gradlew check jacoco assemble - name: Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 From 85bcd65f0d70043f8f1b508016c0b9a30e171cdc Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 21:50:29 +0300 Subject: [PATCH 4/7] Fix lint errors --- app/AndroidManifest.xml | 4 ---- app/build.gradle | 4 ++++ .../net/openid/appauthdemo/ConnectionBuilderForTesting.java | 2 +- app/lint.xml | 6 ++++++ 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 app/lint.xml diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml index 055704ae..36c43f85 100644 --- a/app/AndroidManifest.xml +++ b/app/AndroidManifest.xml @@ -16,8 +16,6 @@ @@ -39,7 +36,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 5a150e8f..69208857 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,6 +31,10 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + lintOptions { + lintConfig = file("${projectDir}/lint.xml") + } + buildTypes { debug { signingConfig signingConfigs.debugAndRelease diff --git a/app/java/net/openid/appauthdemo/ConnectionBuilderForTesting.java b/app/java/net/openid/appauthdemo/ConnectionBuilderForTesting.java index 2226da10..9589ac86 100644 --- a/app/java/net/openid/appauthdemo/ConnectionBuilderForTesting.java +++ b/app/java/net/openid/appauthdemo/ConnectionBuilderForTesting.java @@ -55,7 +55,7 @@ public final class ConnectionBuilderForTesting implements ConnectionBuilder { private static final String HTTP = "http"; private static final String HTTPS = "https"; - @SuppressLint("TrustAllX509TrustManager") + @SuppressLint({"TrustAllX509TrustManager", "CustomX509TrustManager"}) private static final TrustManager[] ANY_CERT_MANAGER = new TrustManager[] { new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { diff --git a/app/lint.xml b/app/lint.xml new file mode 100644 index 00000000..b1e133ee --- /dev/null +++ b/app/lint.xml @@ -0,0 +1,6 @@ + + + + + + From 49002a174a0dac5e6e9d3a0e399c86be167a98c8 Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 21:51:33 +0300 Subject: [PATCH 5/7] Fix unit tests --- config/coverage.gradle | 3 +++ config/testdeps.gradle | 6 +++--- library/javatests/AndroidManifest.xml | 5 ++--- .../net/openid/appauth/browser/AnyBrowserMatcherTest.java | 1 - .../net/openid/appauth/browser/BrowserAllowListTest.java | 1 - .../net/openid/appauth/browser/BrowserDenyListTest.java | 1 - .../net/openid/appauth/browser/CustomTabManagerTest.java | 1 - .../net/openid/appauth/browser/DelimitedVersionTest.java | 1 - .../net/openid/appauth/browser/VersionRangeTest.java | 1 - .../openid/appauth/browser/VersionedBrowserMatcherTest.java | 1 - .../javatests/net/openid/appauth/internal/LoggerTest.java | 1 - .../javatests/net/openid/appauth/internal/UriUtilTest.java | 4 +--- 12 files changed, 9 insertions(+), 17 deletions(-) diff --git a/config/coverage.gradle b/config/coverage.gradle index 413b3447..e68f9c18 100644 --- a/config/coverage.gradle +++ b/config/coverage.gradle @@ -8,6 +8,9 @@ android { } } } + unitTestVariants.all { + it.mergedFlavor.manifestPlaceholders = ['appAuthRedirectScheme': 'net.openid.appauthdemo'] + } } task jacocoTestReport(type: JacocoReport, dependsOn: "testDebugUnitTest") { diff --git a/config/testdeps.gradle b/config/testdeps.gradle index 238fb5b2..635c141b 100644 --- a/config/testdeps.gradle +++ b/config/testdeps.gradle @@ -1,9 +1,9 @@ testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest:2.2' testImplementation 'org.mockito:mockito-core:3.10.0' -testImplementation 'org.robolectric:robolectric:4.5.1' +testImplementation 'org.robolectric:robolectric:4.9' testImplementation 'org.assertj:assertj-core:3.19.0' -testImplementation 'androidx.test.ext:junit:1.1.3' -testImplementation 'androidx.test.ext:truth:1.3.0' +testImplementation 'androidx.test.ext:junit:1.1.5' +testImplementation 'androidx.test.ext:truth:1.5.0' testImplementation 'com.google.truth:truth:1.1.3' testImplementation 'xmlpull:xmlpull:1.1.3.1' diff --git a/library/javatests/AndroidManifest.xml b/library/javatests/AndroidManifest.xml index 3e6faa03..e95bb820 100644 --- a/library/javatests/AndroidManifest.xml +++ b/library/javatests/AndroidManifest.xml @@ -13,12 +13,11 @@ * limitations under the License. --> + xmlns:tools="http://schemas.android.com/tools"> + android:exported="true"> diff --git a/library/javatests/net/openid/appauth/browser/AnyBrowserMatcherTest.java b/library/javatests/net/openid/appauth/browser/AnyBrowserMatcherTest.java index c04c337f..cc47cc34 100644 --- a/library/javatests/net/openid/appauth/browser/AnyBrowserMatcherTest.java +++ b/library/javatests/net/openid/appauth/browser/AnyBrowserMatcherTest.java @@ -16,7 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import net.openid.appauth.BuildConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/library/javatests/net/openid/appauth/browser/BrowserAllowListTest.java b/library/javatests/net/openid/appauth/browser/BrowserAllowListTest.java index 84eaf2c8..c222ec4f 100644 --- a/library/javatests/net/openid/appauth/browser/BrowserAllowListTest.java +++ b/library/javatests/net/openid/appauth/browser/BrowserAllowListTest.java @@ -16,7 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import net.openid.appauth.BuildConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/library/javatests/net/openid/appauth/browser/BrowserDenyListTest.java b/library/javatests/net/openid/appauth/browser/BrowserDenyListTest.java index f299de8c..00adab81 100644 --- a/library/javatests/net/openid/appauth/browser/BrowserDenyListTest.java +++ b/library/javatests/net/openid/appauth/browser/BrowserDenyListTest.java @@ -16,7 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import net.openid.appauth.BuildConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/library/javatests/net/openid/appauth/browser/CustomTabManagerTest.java b/library/javatests/net/openid/appauth/browser/CustomTabManagerTest.java index bda1ef23..044ad3fe 100644 --- a/library/javatests/net/openid/appauth/browser/CustomTabManagerTest.java +++ b/library/javatests/net/openid/appauth/browser/CustomTabManagerTest.java @@ -14,7 +14,6 @@ import androidx.browser.customtabs.CustomTabsServiceConnection; import androidx.browser.customtabs.CustomTabsSession; import java.util.List; -import net.openid.appauth.BuildConfig; import org.junit.After; import org.junit.Before; diff --git a/library/javatests/net/openid/appauth/browser/DelimitedVersionTest.java b/library/javatests/net/openid/appauth/browser/DelimitedVersionTest.java index 9a45026c..5746f06e 100644 --- a/library/javatests/net/openid/appauth/browser/DelimitedVersionTest.java +++ b/library/javatests/net/openid/appauth/browser/DelimitedVersionTest.java @@ -16,7 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import net.openid.appauth.BuildConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/library/javatests/net/openid/appauth/browser/VersionRangeTest.java b/library/javatests/net/openid/appauth/browser/VersionRangeTest.java index 973da024..33211883 100644 --- a/library/javatests/net/openid/appauth/browser/VersionRangeTest.java +++ b/library/javatests/net/openid/appauth/browser/VersionRangeTest.java @@ -16,7 +16,6 @@ import static org.assertj.core.api.Assertions.assertThat; -import net.openid.appauth.BuildConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/library/javatests/net/openid/appauth/browser/VersionedBrowserMatcherTest.java b/library/javatests/net/openid/appauth/browser/VersionedBrowserMatcherTest.java index dfa87e2e..1548509a 100644 --- a/library/javatests/net/openid/appauth/browser/VersionedBrowserMatcherTest.java +++ b/library/javatests/net/openid/appauth/browser/VersionedBrowserMatcherTest.java @@ -19,7 +19,6 @@ import java.util.Collections; import java.util.HashSet; -import net.openid.appauth.BuildConfig; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/library/javatests/net/openid/appauth/internal/LoggerTest.java b/library/javatests/net/openid/appauth/internal/LoggerTest.java index 1e7c4393..a6a5402b 100644 --- a/library/javatests/net/openid/appauth/internal/LoggerTest.java +++ b/library/javatests/net/openid/appauth/internal/LoggerTest.java @@ -23,7 +23,6 @@ import android.util.Log; -import net.openid.appauth.BuildConfig; import org.junit.After; import org.junit.Before; diff --git a/library/javatests/net/openid/appauth/internal/UriUtilTest.java b/library/javatests/net/openid/appauth/internal/UriUtilTest.java index 51e00b2f..68d3ab82 100644 --- a/library/javatests/net/openid/appauth/internal/UriUtilTest.java +++ b/library/javatests/net/openid/appauth/internal/UriUtilTest.java @@ -19,8 +19,6 @@ import android.os.Bundle; import androidx.browser.customtabs.CustomTabsService; -import net.openid.appauth.BuildConfig; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -66,7 +64,7 @@ public void testFormUrlEncode_withSpaceSeparatedValueForParameter() { parameters.put("test2", "value2 value3"); String query = UriUtil.formUrlEncode(parameters); - assertThat(query.contains("value2+value3")); + assertThat(query).contains("value2+value3"); mSanitizer.parseQuery(query); for (Map.Entry param : parameters.entrySet()) { assertThat(mSanitizer.getValue(param.getKey())).isEqualTo(param.getValue()); From d73ced59d07a4b93d9039ab3d193942fc7197959 Mon Sep 17 00:00:00 2001 From: Alexandru Gologan Date: Sun, 21 May 2023 21:52:03 +0300 Subject: [PATCH 6/7] Fix javadoc errors updating mdoclet to 3.1.0 --- config/javadoc.gradle | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config/javadoc.gradle b/config/javadoc.gradle index c1ae6ea9..d9aaf3d1 100644 --- a/config/javadoc.gradle +++ b/config/javadoc.gradle @@ -3,11 +3,12 @@ configurations { } dependencies { - mdDoclet 'org.jdrupes.mdoclet:doclet:2.0.0' + mdDoclet 'org.jdrupes.mdoclet:doclet:3.1.0' } task androidJavadoc(type: JavaExec) { - jvmArgs = ['--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED'] + jvmArgs = ['--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED'] classpath files(project.android.getBootClasspath()) mainClass = 'jdk.javadoc.internal.tool.Main' ext.destinationDir = file("${project.buildDir}/docs/javadoc") @@ -22,6 +23,7 @@ task androidJavadoc(type: JavaExec) { '-d', ext.destinationDir, '-Xdoclint:none', ] + android.sourceSets.main.java.sourceFiles.files + mustRunAfter(':library:assembleRelease', ':library:assembleDebug') } task javadocJar(type: Jar, dependsOn: androidJavadoc) { From c6137b7db306d9c097c0d5763f3fb944cd0122d2 Mon Sep 17 00:00:00 2001 From: Marc Dietrichstein Date: Wed, 12 Jul 2023 09:05:13 +0200 Subject: [PATCH 7/7] Fix typo `EndSessionResonse` typo in README (#978) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d13e3319..1c283f44 100644 --- a/README.md +++ b/README.md @@ -446,7 +446,7 @@ private void endSession() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RC_END_SESSION) { - EndSessionResonse resp = EndSessionResonse.fromIntent(data); + EndSessionResponse resp = EndSessionResponse.fromIntent(data); AuthorizationException ex = AuthorizationException.fromIntent(data); // ... process the response or exception ... } else {