From d644aee1a1980d6512f5d4de465ed55309d38af5 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 14:26:35 +0100 Subject: [PATCH 1/8] feat: upgrade to UML specification 2.2.0 --- CHANGELOG.md | 6 ++++++ build.gradle.kts | 2 +- gradle.properties | 2 +- .../keypop/calypso/card/CalypsoCardApiProperties.java | 2 +- .../keypop/calypso/card/transaction/ChannelControl.java | 2 ++ .../keypop/calypso/card/transaction/TransactionManager.java | 2 ++ 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7558845..bef5f8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed JUnit configuration. ### Changed - Migrated the CI pipeline from Jenkins to GitHub Actions. +### Deprecated +- `ChannelControl` enum will be removed in a future version. +- `TransactionManager.processCommands(ChannelControl channelControl)` method will be removed in a future version. +### Upgraded +- API UML specification `2.1.2` -> `2.2.0`. +- Keypop Reader API `2.0.1` -> `2.1.0` ## [2.1.2] - 2025-03-20 ### Added diff --git a/build.gradle.kts b/build.gradle.kts index b95d649..cac4314 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ plugins { /////////////////////////////////////////////////////////////////////////////// dependencies { - implementation("org.eclipse.keypop:keypop-reader-java-api:2.0.1") + implementation("org.eclipse.keypop:keypop-reader-java-api:2.1.0-SNAPSHOT") testImplementation(platform("org.junit:junit-bom:5.12.2")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") diff --git a/gradle.properties b/gradle.properties index b9be1a6..f60c918 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.eclipse.keypop title = Keypop Calypso Card API description = API defining the needed interfaces to manage Calypso cards -version = 2.1.3-SNAPSHOT +version = 2.2.0-SNAPSHOT # Java Configuration javaSourceLevel = 1.8 diff --git a/src/main/java/org/eclipse/keypop/calypso/card/CalypsoCardApiProperties.java b/src/main/java/org/eclipse/keypop/calypso/card/CalypsoCardApiProperties.java index c293ae3..cbdcafe 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/CalypsoCardApiProperties.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/CalypsoCardApiProperties.java @@ -23,7 +23,7 @@ public final class CalypsoCardApiProperties { * * @since 1.0.0 */ - public static final String VERSION = "2.1"; + public static final String VERSION = "2.2"; /** Private constructor */ private CalypsoCardApiProperties() {} diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ChannelControl.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ChannelControl.java index 27417a8..e5476ae 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ChannelControl.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ChannelControl.java @@ -15,7 +15,9 @@ * Policy for managing the physical channel after a card request is executed. * * @since 2.0.0 + * @deprecated This enum is deprecated and will be removed in a future version. */ +@Deprecated public enum ChannelControl { /** diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java index 2ebf915..8b9fd21 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java @@ -643,7 +643,9 @@ T prepareReadRecordsPartially( * @throws SelectFileException If a "Select File" prepared card command indicated that the file * was not found. * @since 1.6.0 + * @deprecated This method is deprecated and will be removed in a future version. */ + @Deprecated T processCommands(ChannelControl channelControl); /** From d0e3b9c119cc94c0917722bd79e9039e4fc27378 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:08:53 +0100 Subject: [PATCH 2/8] feat: extend TransactionManager with CardTransactionManager --- .../keypop/calypso/card/transaction/CardIOException.java | 1 + .../keypop/calypso/card/transaction/ReaderIOException.java | 1 + .../keypop/calypso/card/transaction/TransactionManager.java | 6 ++++-- .../card/transaction/UnexpectedCommandStatusException.java | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java index 98e2da3..e4f2a40 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java @@ -15,6 +15,7 @@ * Indicates a communication error with the card (e.g. card removal, etc.). * * @since 1.0.0 + * @deprecated This exception is deprecated and will be removed in a future version. */ public final class CardIOException extends RuntimeException { diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java index b742c9d..03bf45e 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java @@ -15,6 +15,7 @@ * Indicates a communication error with the reader of the card or crypto module. * * @since 1.2.0 + * @deprecated This exception is deprecated and will be removed in a future version. */ public final class ReaderIOException extends RuntimeException { diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java index 8b9fd21..5c5d098 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/TransactionManager.java @@ -18,6 +18,7 @@ import org.eclipse.keypop.calypso.card.SelectFileControl; import org.eclipse.keypop.calypso.card.card.CalypsoCard; import org.eclipse.keypop.calypso.card.card.ElementaryFile; +import org.eclipse.keypop.reader.transaction.spi.CardTransactionManager; /** * Contains operations common to all card transactions. @@ -47,7 +48,8 @@ * @param The type of the lowest level child object. * @since 2.0.0 */ -public interface TransactionManager> { +public interface TransactionManager> + extends CardTransactionManager { /** * Schedules the execution of a "Select File" command to select an EF by its LID in the current @@ -643,7 +645,7 @@ T prepareReadRecordsPartially( * @throws SelectFileException If a "Select File" prepared card command indicated that the file * was not found. * @since 1.6.0 - * @deprecated This method is deprecated and will be removed in a future version. + * @deprecated Use {@link #processCommands(org.eclipse.keypop.reader.ChannelControl)} instead. */ @Deprecated T processCommands(ChannelControl channelControl); diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java index 9e7d202..748ed3d 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java @@ -25,6 +25,7 @@ * PIN verification attempts. * * @since 1.2.0 + * @deprecated This exception is deprecated and will be removed in a future version. */ public final class UnexpectedCommandStatusException extends RuntimeException { From 58044dff5b10d351ac2ca35366592e85c05cbdb6 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:10:02 +0100 Subject: [PATCH 3/8] feat: mark deprecated exceptions with @Deprecated --- .../eclipse/keypop/calypso/card/transaction/CardIOException.java | 1 + .../keypop/calypso/card/transaction/ReaderIOException.java | 1 + .../card/transaction/UnexpectedCommandStatusException.java | 1 + 3 files changed, 3 insertions(+) diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java index e4f2a40..3118810 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/CardIOException.java @@ -17,6 +17,7 @@ * @since 1.0.0 * @deprecated This exception is deprecated and will be removed in a future version. */ +@Deprecated public final class CardIOException extends RuntimeException { /** diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java index 03bf45e..e5b3cd4 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/ReaderIOException.java @@ -17,6 +17,7 @@ * @since 1.2.0 * @deprecated This exception is deprecated and will be removed in a future version. */ +@Deprecated public final class ReaderIOException extends RuntimeException { /** diff --git a/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java b/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java index 748ed3d..ec07b1d 100644 --- a/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java +++ b/src/main/java/org/eclipse/keypop/calypso/card/transaction/UnexpectedCommandStatusException.java @@ -27,6 +27,7 @@ * @since 1.2.0 * @deprecated This exception is deprecated and will be removed in a future version. */ +@Deprecated public final class UnexpectedCommandStatusException extends RuntimeException { /** From 6e3113ffc73499d9d74747a1df0a5faf676d1edf Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:24:05 +0100 Subject: [PATCH 4/8] docs: update changelog with unreleased changes --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bef5f8e..f440df6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- `TransactionManager` now extends `CardTransactionManager` from Keypop Reader API. ### Fixed - Fixed JUnit configuration. ### Changed @@ -12,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Deprecated - `ChannelControl` enum will be removed in a future version. - `TransactionManager.processCommands(ChannelControl channelControl)` method will be removed in a future version. +- `CardIOException`, `ReaderIOException` and `UnexpectedCommandStatusException` are now marked with `@Deprecated` annotation. ### Upgraded - API UML specification `2.1.2` -> `2.2.0`. - Keypop Reader API `2.0.1` -> `2.1.0` From 5ec74fda913688dbaedc6539e27e4cac9283db07 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:28:05 +0100 Subject: [PATCH 5/8] docs: update deprecated APIs in changelog --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f440df6..ab0c3b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,11 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Migrated the CI pipeline from Jenkins to GitHub Actions. ### Deprecated -- `ChannelControl` enum will be removed in a future version. -- `TransactionManager.processCommands(ChannelControl channelControl)` method will be removed in a future version. -- `CardIOException`, `ReaderIOException` and `UnexpectedCommandStatusException` are now marked with `@Deprecated` annotation. +- `ChannelControl`, `TransactionManager.processCommands(ChannelControl channelControl)`, `CardIOException`, + `ReaderIOException`, `UnexpectedCommandStatusException`. ### Upgraded -- API UML specification `2.1.2` -> `2.2.0`. - Keypop Reader API `2.0.1` -> `2.1.0` ## [2.1.2] - 2025-03-20 From 62ea1fb4cec8b6661d48591237cf6b8ad69f8efc Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:28:58 +0100 Subject: [PATCH 6/8] docs: fix changelog formatting for deprecated APIs --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab0c3b2..d0ceadc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Migrated the CI pipeline from Jenkins to GitHub Actions. ### Deprecated -- `ChannelControl`, `TransactionManager.processCommands(ChannelControl channelControl)`, `CardIOException`, - `ReaderIOException`, `UnexpectedCommandStatusException`. +- `ChannelControl`, +- `TransactionManager.processCommands(ChannelControl channelControl)`, +- `CardIOException`, +- `ReaderIOException`, +- `UnexpectedCommandStatusException`. ### Upgraded - Keypop Reader API `2.0.1` -> `2.1.0` From 5d5095c7bed0b87e43a0793eefab2c63d8251b97 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Mon, 10 Nov 2025 16:50:24 +0100 Subject: [PATCH 7/8] fix: mark keypop-reader dependency as changing --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index cac4314..d822e44 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ plugins { /////////////////////////////////////////////////////////////////////////////// dependencies { - implementation("org.eclipse.keypop:keypop-reader-java-api:2.1.0-SNAPSHOT") + implementation("org.eclipse.keypop:keypop-reader-java-api:2.1.0-SNAPSHOT") { isChanging = true } testImplementation(platform("org.junit:junit-bom:5.12.2")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher") From 1b7bd6e3cf1ddf5139648aca238f294ba959f980 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Fri, 21 Nov 2025 10:28:40 +0100 Subject: [PATCH 8/8] fix: update keypop-reader dependency to stable version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index d822e44..48b796e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,7 +14,7 @@ plugins { /////////////////////////////////////////////////////////////////////////////// dependencies { - implementation("org.eclipse.keypop:keypop-reader-java-api:2.1.0-SNAPSHOT") { isChanging = true } + implementation("org.eclipse.keypop:keypop-reader-java-api:2.1.0") testImplementation(platform("org.junit:junit-bom:5.12.2")) testImplementation("org.junit.jupiter:junit-jupiter") testRuntimeOnly("org.junit.platform:junit-platform-launcher")