From 7a8072be6e034e81bcbd4a36972565efcb9a43f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Pr=C3=BCnster?= Date: Mon, 18 Sep 2023 12:03:43 +0200 Subject: [PATCH 1/3] do not **strictly** enforce jdk 11 anymore --- .github/workflows/build-ios.yml | 2 +- .github/workflows/publish-dry-run.yml | 2 +- .github/workflows/publish.yml | 2 +- conventions-vclib/build.gradle.kts | 18 +++++------------- conventions-vclib/gradle-conventions-plugin | 2 +- .../wallet/lib/data/AtomicAttribute2023.kt | 1 + .../wallet/lib/data/CredentialSubjectTest.kt | 4 +++- 7 files changed, 13 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index a2e7d602f..051957b59 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Build klibs run: ./gradlew iosArm64MainKlibrary iosX64MainKlibrary - name: Build XCFrameworks diff --git a/.github/workflows/publish-dry-run.yml b/.github/workflows/publish-dry-run.yml index f242804c3..4010d670b 100644 --- a/.github/workflows/publish-dry-run.yml +++ b/.github/workflows/publish-dry-run.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Publish to Maven Local run: ./gradlew clean publishToMavenLocal env: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3b4b262c7..107446cbc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Publish to Sonatype run: ./gradlew clean publishToSonatype closeSonatypeStagingRepository env: diff --git a/conventions-vclib/build.gradle.kts b/conventions-vclib/build.gradle.kts index 7c9fe6f49..1110d70d5 100644 --- a/conventions-vclib/build.gradle.kts +++ b/conventions-vclib/build.gradle.kts @@ -1,13 +1,14 @@ +import java.io.FileInputStream +import java.util.* + plugins { `kotlin-dsl` idea } group = "at.asitplus.gradle" -idea { - project { - jdkName = "11" //TODO use from ASP conventions plugin? - } +private val versions = Properties().apply { + kotlin.runCatching { load(FileInputStream(rootProject.file("gradle-conventions-plugin/src/main/resources/versions.properties"))) } } dependencies { @@ -19,15 +20,6 @@ repositories { mavenCentral() gradlePluginPortal() } -kotlin { - jvmToolchain { - (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(11/*TODO share*/)) - } - /*compilerOptions { - languageVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9) - apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9) - }*/ -} gradlePlugin { plugins.register("vclib-conventions") { diff --git a/conventions-vclib/gradle-conventions-plugin b/conventions-vclib/gradle-conventions-plugin index 547265c8d..970ed0536 160000 --- a/conventions-vclib/gradle-conventions-plugin +++ b/conventions-vclib/gradle-conventions-plugin @@ -1 +1 @@ -Subproject commit 547265c8d424c42109677da6de274e656c3ebb54 +Subproject commit 970ed0536535b44641dd0417e566d76dfa3387b0 diff --git a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt index ed346c681..39d9c9647 100644 --- a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt +++ b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt @@ -20,6 +20,7 @@ data class AtomicAttribute2023 ( @SerialName("mime-type") val mimeType: String, + ) : CredentialSubject() { constructor(id: String, name: String, value: String) : this(id, name, value, "application/text") diff --git a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt index bf25e275e..6e9920389 100644 --- a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt +++ b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt @@ -10,7 +10,9 @@ import kotlinx.serialization.json.Json class CredentialSubjectTest : FreeSpec({ "Subclasses are correctly deserialized" { @Serializable - class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String): CredentialSubject() + class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String): CredentialSubject( + id + ) val result = Json.decodeFromString("{\"id\":\"Test\",\"not-foo\":\"bar\"}") result.id shouldBe "Test" result.foo shouldBe "bar" From 175ee1fb646a414b284fc2af4136b509cd29541f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Pr=C3=BCnster?= Date: Wed, 27 Sep 2023 13:04:04 +0200 Subject: [PATCH 2/3] minor fixes --- .../lib/aries/PresentProofMessengerTest.kt | 2 +- .../asitplus/wallet/lib/iso/DeviceRequest.kt | 26 +++---------------- .../wallet/lib/data/CredentialSubjectTest.kt | 6 ++--- 3 files changed, 7 insertions(+), 27 deletions(-) diff --git a/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt b/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt index 15e8bc7d7..18f2f43ca 100644 --- a/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt +++ b/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt @@ -87,7 +87,7 @@ class PresentProofMessengerTest : FreeSpec() { val expectedSubject = randomCredential(holder.identifier) val subject = expectedSubject.subject val attributeName = (subject as AtomicAttribute2023).name - val attributeValue = (subject as AtomicAttribute2023).value + val attributeValue = subject.value val expectedVc = issuer.issueCredential(expectedSubject) holder.storeCredentials(expectedVc.toStoreCredentialInput()) diff --git a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt index 233f85d34..85c0c1db3 100644 --- a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt +++ b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt @@ -1,4 +1,4 @@ -@file:OptIn(ExperimentalSerializationApi::class) +@file:OptIn(ExperimentalSerializationApi::class, ExperimentalUnsignedTypes::class) package at.asitplus.wallet.lib.iso @@ -8,33 +8,15 @@ import io.github.aakira.napier.Napier import io.matthewnelson.encoding.base16.Base16 import io.matthewnelson.encoding.core.Encoder.Companion.encodeToString import kotlinx.datetime.LocalDate -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.InternalSerializationApi -import kotlinx.serialization.KSerializer -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* import kotlinx.serialization.builtins.ArraySerializer import kotlinx.serialization.builtins.ByteArraySerializer import kotlinx.serialization.builtins.serializer import kotlinx.serialization.cbor.ByteString import kotlinx.serialization.cbor.ByteStringWrapper import kotlinx.serialization.cbor.ValueTags -import kotlinx.serialization.decodeFromByteArray -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.descriptors.SerialKind -import kotlinx.serialization.descriptors.StructureKind -import kotlinx.serialization.descriptors.buildSerialDescriptor -import kotlinx.serialization.descriptors.listSerialDescriptor -import kotlinx.serialization.descriptors.mapSerialDescriptor -import kotlinx.serialization.encodeToByteArray -import kotlinx.serialization.encoding.CompositeDecoder -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import kotlinx.serialization.encoding.decodeStructure -import kotlinx.serialization.encoding.encodeCollection -import kotlinx.serialization.encoding.encodeStructure +import kotlinx.serialization.descriptors.* +import kotlinx.serialization.encoding.* import okio.ByteString.Companion.toByteString /** diff --git a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt index 6e9920389..b81e8c39c 100644 --- a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt +++ b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt @@ -4,15 +4,13 @@ import io.kotest.core.spec.style.FreeSpec import io.kotest.matchers.shouldBe import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json class CredentialSubjectTest : FreeSpec({ "Subclasses are correctly deserialized" { @Serializable - class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String): CredentialSubject( - id - ) + class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String) : + CredentialSubject() val result = Json.decodeFromString("{\"id\":\"Test\",\"not-foo\":\"bar\"}") result.id shouldBe "Test" result.foo shouldBe "bar" From d63bdb81a14b99b00333710e6f64458230ceb015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Pr=C3=BCnster?= Date: Wed, 27 Sep 2023 18:57:12 +0200 Subject: [PATCH 3/3] revert unneccessary changes --- conventions-vclib/build.gradle.kts | 4 --- .../lib/aries/PresentProofMessengerTest.kt | 2 +- .../wallet/lib/data/AtomicAttribute2023.kt | 1 - .../asitplus/wallet/lib/iso/DeviceRequest.kt | 26 ++++++++++++++++--- .../wallet/lib/data/CredentialSubjectTest.kt | 3 +-- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/conventions-vclib/build.gradle.kts b/conventions-vclib/build.gradle.kts index 1110d70d5..28e9997ab 100644 --- a/conventions-vclib/build.gradle.kts +++ b/conventions-vclib/build.gradle.kts @@ -7,10 +7,6 @@ plugins { } group = "at.asitplus.gradle" -private val versions = Properties().apply { - kotlin.runCatching { load(FileInputStream(rootProject.file("gradle-conventions-plugin/src/main/resources/versions.properties"))) } -} - dependencies { api("at.asitplus.gradle:conventions") } diff --git a/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt b/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt index 18f2f43ca..15e8bc7d7 100644 --- a/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt +++ b/vclib-aries/src/commonTest/kotlin/at/asitplus/wallet/lib/aries/PresentProofMessengerTest.kt @@ -87,7 +87,7 @@ class PresentProofMessengerTest : FreeSpec() { val expectedSubject = randomCredential(holder.identifier) val subject = expectedSubject.subject val attributeName = (subject as AtomicAttribute2023).name - val attributeValue = subject.value + val attributeValue = (subject as AtomicAttribute2023).value val expectedVc = issuer.issueCredential(expectedSubject) holder.storeCredentials(expectedVc.toStoreCredentialInput()) diff --git a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt index 39d9c9647..ed346c681 100644 --- a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt +++ b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/data/AtomicAttribute2023.kt @@ -20,7 +20,6 @@ data class AtomicAttribute2023 ( @SerialName("mime-type") val mimeType: String, - ) : CredentialSubject() { constructor(id: String, name: String, value: String) : this(id, name, value, "application/text") diff --git a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt index 85c0c1db3..233f85d34 100644 --- a/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt +++ b/vclib/src/commonMain/kotlin/at/asitplus/wallet/lib/iso/DeviceRequest.kt @@ -1,4 +1,4 @@ -@file:OptIn(ExperimentalSerializationApi::class, ExperimentalUnsignedTypes::class) +@file:OptIn(ExperimentalSerializationApi::class) package at.asitplus.wallet.lib.iso @@ -8,15 +8,33 @@ import io.github.aakira.napier.Napier import io.matthewnelson.encoding.base16.Base16 import io.matthewnelson.encoding.core.Encoder.Companion.encodeToString import kotlinx.datetime.LocalDate -import kotlinx.serialization.* +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.InternalSerializationApi +import kotlinx.serialization.KSerializer +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import kotlinx.serialization.builtins.ArraySerializer import kotlinx.serialization.builtins.ByteArraySerializer import kotlinx.serialization.builtins.serializer import kotlinx.serialization.cbor.ByteString import kotlinx.serialization.cbor.ByteStringWrapper import kotlinx.serialization.cbor.ValueTags -import kotlinx.serialization.descriptors.* -import kotlinx.serialization.encoding.* +import kotlinx.serialization.decodeFromByteArray +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.descriptors.SerialKind +import kotlinx.serialization.descriptors.StructureKind +import kotlinx.serialization.descriptors.buildSerialDescriptor +import kotlinx.serialization.descriptors.listSerialDescriptor +import kotlinx.serialization.descriptors.mapSerialDescriptor +import kotlinx.serialization.encodeToByteArray +import kotlinx.serialization.encoding.CompositeDecoder +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.encoding.decodeStructure +import kotlinx.serialization.encoding.encodeCollection +import kotlinx.serialization.encoding.encodeStructure import okio.ByteString.Companion.toByteString /** diff --git a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt index b81e8c39c..92a581323 100644 --- a/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt +++ b/vclib/src/commonTest/kotlin/at/asitplus/wallet/lib/data/CredentialSubjectTest.kt @@ -9,8 +9,7 @@ import kotlinx.serialization.json.Json class CredentialSubjectTest : FreeSpec({ "Subclasses are correctly deserialized" { @Serializable - class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String) : - CredentialSubject() + class SpecializedCredentialTest(override val id: String, @SerialName("not-foo") val foo: String): CredentialSubject() val result = Json.decodeFromString("{\"id\":\"Test\",\"not-foo\":\"bar\"}") result.id shouldBe "Test" result.foo shouldBe "bar"