Skip to content

Commit 632f657

Browse files
committed
dependencies updated. migrated to dokka v2. broken references fixed.
1 parent 8493cfb commit 632f657

10 files changed

Lines changed: 91 additions & 101 deletions

File tree

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
plugins {
1919
alias(libs.plugins.android.library) apply false
2020
alias(libs.plugins.kotlin.android) apply false
21-
alias(libs.plugins.dokka) apply false
2221
alias(libs.plugins.dependency.license.report) apply false
2322
alias(libs.plugins.dependencycheck) apply false
24-
alias(libs.plugins.jetbrains.kotlin.jvm) apply false
25-
}
23+
alias(libs.plugins.dokka.javadoc) apply false
24+
alias(libs.plugins.dokka.html) apply false
25+
}

gradle/libs.versions.toml

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,40 @@
11
[versions]
2-
androidx-credentials-registry-provider = "1.0.0-alpha01"
2+
android-gradle-plugin = "8.13.1"
3+
androidx-credentials-registry-provider = "1.0.0-alpha03"
34
appcompat = "1.7.1"
45
biometricKtx = "1.2.0-alpha05"
5-
bouncy-castle = "1.78.1"
6+
bouncy-castle = "1.83"
67
cbor = "0.9"
78
coseJava = "1.1.0"
8-
dependency-license-report = "2.9"
9-
dependencycheck = "12.1.3"
10-
dokka = "1.9.20"
11-
espresso-contrib = "3.6.1"
12-
espresso-core = "3.6.1"
9+
dependency-license-report = "3.0.1"
10+
dependencycheck = "12.1.9"
11+
dokka = "2.1.0"
12+
espresso = "3.7.0"
1313
eudi-document-manager = "0.13.0"
1414
eudi-iso18013-data-transfer = "0.10.0"
1515
eudi-lib-jvm-openid4vci-kt = "0.9.1"
1616
eudi-lib-jvm-siop-openid4vp-kt = "0.11.1"
17-
eudi-lib-jvm-sdjwt-kt = "0.10.0"
17+
eudi-lib-jvm-sdjwt-kt = "0.10.0" # 0.17.2
1818
eudi-lib-kmp-statium = "0.4.0"
19-
gradle-plugin = "8.13.0"
20-
java = "17"
2119
json = "20250517"
22-
junit = "5.13.2"
23-
junit-android = "1.2.1"
24-
kotlin = "2.1.21"
20+
junit-android = "1.3.0"
21+
kotlin = "2.2.21"
2522
kotlin-coroutines-test = "1.10.2"
26-
kotlinx-io = "0.7.0"
27-
ktor = "3.3.0"
28-
mavenPublish = "0.33.0"
29-
mockito-android = "5.18.0"
30-
mockito-inline = "5.2.0"
31-
mockito-kotlin = "5.4.0"
32-
mockk = "1.14.4"
33-
multipaz = "0.94.0"
34-
nimbus-sdk = "11.20.1"
35-
play-services-identity-credentials = "16.0.0-alpha05"
36-
robolectric = "4.15.1"
37-
sonarqube = "6.2.0.5505"
38-
test-core = "1.6.1"
39-
test-rules = "1.6.1"
40-
test-runner = "1.6.2"
23+
kotlinx-io = "0.8.2"
24+
ktor = "3.3.3"
25+
mavenPublish = "0.35.0"
26+
mockito-android = "5.20.0"
27+
mockk = "1.14.6"
28+
multipaz = "0.94.0" # 0.95.0
29+
nimbus-sdk = "11.30.1"
30+
play-services-identity-credentials = "16.0.0-alpha08"
31+
robolectric = "4.16"
32+
sonarqube = "7.1.0.6387"
33+
test-core = "1.7.0"
34+
test-rules = "1.7.0"
35+
test-runner = "1.7.0"
4136
upokecenter-cbor = "4.5.6"
42-
coreKtx = "1.16.0"
43-
material = "1.12.0"
44-
jetbrainsKotlinJvm = "2.2.0"
45-
testng = "7.11.0"
46-
kover = "0.9.1"
37+
kover = "0.9.3"
4738

4839
[libraries]
4940
androidx-credentials-registry-provider = { module = "androidx.credentials.registry:registry-provider", version.ref = "androidx-credentials-registry-provider" }
@@ -54,26 +45,22 @@ bouncy-castle-pkix = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref =
5445
bouncy-castle-prov = { module = "org.bouncycastle:bcprov-jdk18on", version.ref = "bouncy-castle" }
5546
cbor = { module = "co.nstant.in:cbor", version.ref = "cbor" }
5647
cose-java = { module = "com.augustcellars.cose:cose-java", version.ref = "coseJava" }
57-
espresso-contrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espresso-contrib" }
58-
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso-core" }
59-
espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espresso-core" }
48+
espresso-contrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espresso" }
49+
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" }
50+
espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espresso" }
6051
eudi-document-manager = { module = "eu.europa.ec.eudi:eudi-lib-android-wallet-document-manager", version.ref = "eudi-document-manager" }
6152
eudi-iso18013-data-transfer = { module = "eu.europa.ec.eudi:eudi-lib-android-iso18013-data-transfer", version.ref = "eudi-iso18013-data-transfer" }
6253
eudi-lib-jvm-openid4vci-kt = { module = "eu.europa.ec.eudi:eudi-lib-jvm-openid4vci-kt", version.ref = "eudi-lib-jvm-openid4vci-kt" }
6354
eudi-lib-jvm-siop-openid4vp-kt = { module = "eu.europa.ec.eudi:eudi-lib-jvm-siop-openid4vp-kt", version.ref = "eudi-lib-jvm-siop-openid4vp-kt" }
6455
eudi-lib-jvm-sdjwt-kt = { module = "eu.europa.ec.eudi:eudi-lib-jvm-sdjwt-kt", version.ref = "eudi-lib-jvm-sdjwt-kt" }
6556
eudi-lib-kmp-statium = { module = "eu.europa.ec.eudi:eudi-lib-kmp-statium-android", version.ref = "eudi-lib-kmp-statium" }
6657
json = { module = "org.json:json", version.ref = "json" }
67-
junit = { module = "junit:junit", version.ref = "junit" }
68-
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
6958
kotlin-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlin-coroutines-test" }
7059
kotlinx-io-bytestring = { group = "org.jetbrains.kotlinx", name = "kotlinx-io-bytestring", version.ref = "kotlinx-io" }
7160
kotlinx-io-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-io-core", version.ref = "kotlinx-io" }
7261
ktor-client-android = { module = "io.ktor:ktor-client-android", version.ref = "ktor" }
7362
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
7463
mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockito-android" }
75-
mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito-inline" }
76-
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-kotlin" }
7764
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
7865
multipaz-android = { module = "org.multipaz:multipaz-android", version.ref = "multipaz" }
7966
nimbus-oauth2-oidc-sdk = { module = "com.nimbusds:oauth2-oidc-sdk", version.ref = "nimbus-sdk" }
@@ -84,18 +71,15 @@ test-coreKtx = { module = "androidx.test:core-ktx", version.ref = "test-core" }
8471
test-rules = { module = "androidx.test:rules", version.ref = "test-rules" }
8572
test-runner = { module = "androidx.test:runner", version.ref = "test-runner" }
8673
upokecenter-cbor = { module = "com.upokecenter:cbor", version.ref = "upokecenter-cbor" }
87-
core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
88-
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
89-
testng = { group = "org.testng", name = "testng", version.ref = "testng" }
9074

9175
[plugins]
92-
android-library = { id = "com.android.library", version.ref = "gradle-plugin" }
76+
android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" }
9377
dependency-license-report = { id = "com.github.jk1.dependency-license-report", version.ref = "dependency-license-report" }
9478
dependencycheck = { id = "org.owasp.dependencycheck", version.ref = "dependencycheck" }
95-
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
79+
dokka-html = { id = "org.jetbrains.dokka", version.ref = "dokka" }
80+
dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version.ref = "dokka" }
9681
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
9782
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
9883
maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }
9984
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" }
100-
jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" }
101-
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
85+
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#Thu Sep 12 17:12:58 EEST 2024
1818
distributionBase=GRADLE_USER_HOME
19-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
19+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
2020
distributionPath=wrapper/dists
2121
zipStorePath=wrapper/dists
2222
zipStoreBase=GRADLE_USER_HOME

settings.gradle.kts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,19 @@ pluginManagement {
1818
repositories {
1919
google {
2020
content {
21-
includeGroupByRegex("com\\.android.*")
22-
includeGroupByRegex("com\\.google.*")
21+
includeGroupByRegex("com.google.*")
22+
includeGroupByRegex("com.android.*")
2323
includeGroupByRegex("androidx.*")
2424
}
2525
}
2626
mavenCentral()
2727
gradlePluginPortal()
2828
}
2929
}
30+
31+
@Suppress("UnstableApiUsage")
3032
dependencyResolutionManagement {
31-
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
33+
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
3234
repositories {
3335
mavenLocal()
3436
google()

wallet-core/build.gradle.kts

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,23 @@
1414
* limitations under the License.
1515
*/
1616

17+
import com.github.jk1.license.filter.DependencyFilter
1718
import com.github.jk1.license.filter.ExcludeTransitiveDependenciesFilter
1819
import com.github.jk1.license.filter.LicenseBundleNormalizer
1920
import com.github.jk1.license.filter.ReduceDuplicateLicensesFilter
2021
import com.github.jk1.license.render.InventoryMarkdownReportRenderer
2122
import com.vanniktech.maven.publish.AndroidMultiVariantLibrary
23+
import org.jetbrains.dokka.gradle.DokkaExtension
24+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2225
import java.util.Locale
2326

2427
plugins {
2528
alias(libs.plugins.android.library)
2629
alias(libs.plugins.kotlin.android)
2730
alias(libs.plugins.kotlin.serialization)
2831
id("kotlin-parcelize")
29-
alias(libs.plugins.dokka)
32+
alias(libs.plugins.dokka.html)
33+
alias(libs.plugins.dokka.javadoc)
3034
alias(libs.plugins.dependency.license.report)
3135
alias(libs.plugins.dependencycheck)
3236
alias(libs.plugins.sonarqube)
@@ -39,21 +43,26 @@ val GROUP: String by project
3943
val POM_SCM_URL: String by project
4044
val POM_DESCRIPTION: String by project
4145

46+
kotlin {
47+
compilerOptions {
48+
jvmTarget.set(JvmTarget.JVM_17)
49+
optIn.add("kotlin.RequiresOptIn")
50+
optIn.add("kotlin.time.ExperimentalTime")
51+
}
52+
}
53+
4254
android {
4355
namespace = NAMESPACE
4456
group = GROUP
45-
compileSdk = 35
57+
compileSdk = 36
4658

4759
defaultConfig {
4860
minSdk = 26
49-
5061
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
5162
testApplicationId = "$NAMESPACE.test"
5263
testHandleProfiling = true
5364
testFunctionalTest = true
54-
5565
consumerProguardFiles("consumer-rules.pro")
56-
5766
}
5867

5968
buildTypes {
@@ -70,11 +79,8 @@ android {
7079
}
7180
}
7281
compileOptions {
73-
sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get())
74-
targetCompatibility = JavaVersion.toVersion(libs.versions.java.get())
75-
}
76-
kotlinOptions {
77-
jvmTarget = libs.versions.java.get()
82+
sourceCompatibility = JavaVersion.VERSION_17
83+
targetCompatibility = JavaVersion.VERSION_17
7884
}
7985

8086
testOptions {
@@ -99,14 +105,6 @@ android {
99105
withSourcesJar()
100106
}
101107
}
102-
103-
kotlinOptions {
104-
jvmTarget = libs.versions.java.get()
105-
freeCompilerArgs += listOf(
106-
"-opt-in=kotlin.RequiresOptIn",
107-
"-opt-in=kotlin.time.ExperimentalTime",
108-
)
109-
}
110108
}
111109

112110
dependencies {
@@ -180,34 +178,42 @@ dependencyCheck {
180178
}
181179

182180
// Dokka generation
183-
184-
tasks.dokkaGfm.configure {
185-
val outputDir = file("$rootDir/docs")
186-
doFirst { delete(outputDir) }
187-
outputDirectory.set(outputDir)
181+
dokka {
182+
dokkaSourceSets.configureEach {
183+
dokkaPublications.html {
184+
outputDirectory.set(rootProject.file("docs"))
185+
}
186+
externalDocumentationLinks.register("android") {
187+
url("https://developer.android.com/reference")
188+
packageListUrl("https://developer.android.com/reference/kotlin/package-list")
189+
}
190+
externalDocumentationLinks.register("java") {
191+
url("https://docs.oracle.com/en/java/javase/17/docs/api/")
192+
packageListUrl("https://docs.oracle.com/en/java/javase/17/docs/api/allpackages-index.html")
193+
}
194+
}
188195
}
189196

190-
tasks.register<Jar>("dokkaHtmlJar") {
197+
val dokkaHtmlJar by tasks.registering(Jar::class) {
191198
group = "documentation"
192-
dependsOn(tasks.dokkaHtml)
193-
from(tasks.dokkaHtml.flatMap { it.outputDirectory })
199+
dependsOn(tasks.dokkaGeneratePublicationHtml)
200+
from(tasks.dokkaGeneratePublicationHtml.flatMap { it.outputDirectory })
194201
archiveClassifier.set("html-docs")
195202
description = "Assembles a JAR containing the HTML documentation generated by Dokka."
196203
}
197204

198-
tasks.register<Jar>("dokkaJavadocJar") {
205+
val dokkaJavadocJar by tasks.registering(Jar::class) {
199206
group = "documentation"
200-
dependsOn(tasks.dokkaJavadoc)
201-
from(tasks.dokkaJavadoc.flatMap { it.outputDirectory })
207+
dependsOn(tasks.dokkaGeneratePublicationJavadoc)
208+
from(tasks.dokkaGeneratePublicationJavadoc.flatMap { it.outputDirectory })
202209
archiveClassifier.set("javadoc")
203210
description = "Assembles a JAR containing the Javadoc-style documentation generated by Dokka."
204211
}
205212

206213
// Third-party licenses report
207-
208214
licenseReport {
209215
unionParentPomLicenses = false
210-
filters = arrayOf(
216+
filters = arrayOf<DependencyFilter>(
211217
LicenseBundleNormalizer(),
212218
ReduceDuplicateLicensesFilter(),
213219
ExcludeTransitiveDependenciesFilter()
@@ -238,7 +244,6 @@ tasks.assemble.configure {
238244
}
239245

240246
// Publish
241-
242247
mavenPublishing {
243248
configure(
244249
AndroidMultiVariantLibrary(
@@ -254,6 +259,7 @@ mavenPublishing {
254259
}
255260
}
256261
}
262+
257263
// handle java.lang.UnsupportedOperationException: PermittedSubclasses requires ASM9
258264
// when publishing module
259265
afterEvaluate {

wallet-core/src/main/java/eu/europa/ec/eudi/wallet/EudiWallet.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ interface EudiWallet : SampleDocumentManager, PresentationManager, DocumentStatu
9595
* @param readerCertificates the list of reader certificates
9696
* @return this [EudiWallet] instance
9797
*/
98-
fun setTrustedReaderCertificates(trustedReaderCertificates: List<X509Certificate>): EudiWallet
98+
fun setTrustedReaderCertificates(readerCertificates: List<X509Certificate>): EudiWallet
9999

100100
/**
101101
* Sets the reader trust store with the given list of raw resource IDs. This method is useful
@@ -179,7 +179,7 @@ interface EudiWallet : SampleDocumentManager, PresentationManager, DocumentStatu
179179
* @property transactionLogger the transaction logger to use if you want to provide a custom implementation
180180
* @property documentStatusResolver the document status resolver to use if you want to provide a custom implementation
181181
* @property dcapiRegistration the DCAPI registration to use if you want to provide a custom implementation, by default
182-
* it will be [DCAPIIsoMdocRegistration] when the DCAPI is enabled in the configuration
182+
* it will be [eu.europa.ec.eudi.wallet.dcapi.DCAPIIsoMdocRegistration] when the DCAPI is enabled in the configuration
183183
*/
184184
class Builder(
185185
context: Context,
@@ -221,9 +221,8 @@ interface EudiWallet : SampleDocumentManager, PresentationManager, DocumentStatu
221221

222222
/**
223223
* Configure with the given [DocumentManager] to use. If not set, the default document manager
224-
* will be used which is [DocumentManagerImpl] configured with the provided [storageEngine] and [secureAreas]
225-
* if they are set.
226-
*
224+
* will be used which is [eu.europa.ec.eudi.wallet.document.DocumentManagerImpl] configured
225+
* with the provided [storage] and [secureAreas] if they are set.
227226
* @param documentManager the document manager
228227
* @return this [Builder] instance
229228
*/
@@ -302,9 +301,8 @@ interface EudiWallet : SampleDocumentManager, PresentationManager, DocumentStatu
302301
/**
303302
* Configure with the given [DCAPIRegistration] to use for registering credentials
304303
* with the Digital Credential API (DCAPI).
305-
* If not set, the default [DCAPIIsoMdocRegistration] will be used when the DCAPI is enabled
306-
* in the configuration.
307-
*
304+
* If not set, the default [eu.europa.ec.eudi.wallet.dcapi.DCAPIIsoMdocRegistration]
305+
* will be used when the DCAPI is enabled in the configuration.
308306
* @param dcapiRegistration the DCAPI registration
309307
* @return this [Builder] instance
310308
*/
@@ -320,7 +318,7 @@ interface EudiWallet : SampleDocumentManager, PresentationManager, DocumentStatu
320318
* The [EudiWallet] instance will be created with the following default implementations if not set:
321319
* - [AndroidStorage] for storing/retrieving documents
322320
* - [AndroidKeystoreSecureArea] for managing documents' keys
323-
* - [DocumentManagerImpl] for managing documents
321+
* - [eu.europa.ec.eudi.wallet.document.DocumentManagerImpl] for managing documents
324322
* - [PresentationManagerImpl] for both proximity and remote presentation
325323
* - [OpenId4VpManager] for remote presentation
326324
* - [eu.europa.ec.eudi.iso18013.transfer.TransferManagerImpl] for proximity presentation

wallet-core/src/main/java/eu/europa/ec/eudi/wallet/internal/OpenId4VpUtils.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,10 @@ internal fun ResolvedRequestObject.OpenId4VPAuthorization.getSessionTranscriptBy
261261
}
262262

263263
/**
264-
* Converts a list of [Format]s to [VpFormats] for use in VP configuration.
264+
* Converts a list of [Format]s to [VpFormatsSupported] for use in VP configuration.
265265
*
266266
* @receiver List of credential formats.
267-
* @return The corresponding [VpFormats] object.
267+
* @return The corresponding [VpFormatsSupported] object.
268268
*/
269269
internal fun List<Format>.toVpFormats(): VpFormatsSupported {
270270

0 commit comments

Comments
 (0)