From c045e31425fe2081bfd287551270e8674a45d5a8 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Tue, 17 Mar 2026 15:54:49 +0100 Subject: [PATCH 1/9] Add method to prepare to read the system block from storage cards and update version to 1.2.0-SNAPSHOT. --- gradle.properties | 2 +- .../card/StorageCardSelectionExtension.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 019d581..5d66a10 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.eclipse.keypop title = Keypop Storage Card Java API description = API defining the needed interfaces to manage storage cards -version = 1.1.2-SNAPSHOT +version = 1.2.0-SNAPSHOT # Java Configuration javaSourceLevel = 1.8 diff --git a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java index ae7e25a..9db58ff 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java +++ b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java @@ -56,6 +56,21 @@ public interface StorageCardSelectionExtension extends CardSelectionExtension { */ StorageCardSelectionExtension prepareReadBlocks(int fromBlockAddress, int toBlockAddress); + /** + * Prepares the reading of the system block from the storage card when present. + * + *

Not all storage card types include a system block. This method should only be called for + * card types that support system block access. + * + *

Once this command is processed, the result is available in {@link StorageCard} via {@link + * StorageCard#getBlock} and {@link StorageCard#getBlocks(int, int)} methods. + * @return The current instance. + * @throws UnsupportedOperationException If the current card type does not support system block + * access. + * @since 1.2.0 + */ + StorageCardSelectionExtension prepareReadSystemBlock(); + /** * Prepares a Mifare Classic authentication command using a provided key. * From a031d9aaa8dca6c9a2e97c016e32c5724c494cfd Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Tue, 17 Mar 2026 18:00:03 +0100 Subject: [PATCH 2/9] Rename method to `prepareSt25ReadSystemBlock` --- .../keypop/storagecard/card/StorageCardSelectionExtension.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java index 9db58ff..dd97976 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java +++ b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java @@ -69,7 +69,7 @@ public interface StorageCardSelectionExtension extends CardSelectionExtension { * access. * @since 1.2.0 */ - StorageCardSelectionExtension prepareReadSystemBlock(); + StorageCardSelectionExtension prepareSt25ReadSystemBlock(); /** * Prepares a Mifare Classic authentication command using a provided key. From 473cc46b77511698fd5cf682c2dab216be2c93a4 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Tue, 17 Mar 2026 18:03:16 +0100 Subject: [PATCH 3/9] Clarify `prepareSt25ReadSystemBlock` documentation for ST25/SRT512-specific usage. --- .../card/StorageCardSelectionExtension.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java index dd97976..7f14164 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java +++ b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java @@ -57,16 +57,15 @@ public interface StorageCardSelectionExtension extends CardSelectionExtension { StorageCardSelectionExtension prepareReadBlocks(int fromBlockAddress, int toBlockAddress); /** - * Prepares the reading of the system block from the storage card when present. + * Prepares the reading of the system block from an ST25/SRT512 storage card. * - *

Not all storage card types include a system block. This method should only be called for - * card types that support system block access. + *

This method is specific to ST25 and SRT512 card types which provide access to a system block + * at address 255 containing card-specific metadata and configuration data. + * + *

Once this command is processed, the result is available in {@link StorageCard}. * - *

Once this command is processed, the result is available in {@link StorageCard} via {@link - * StorageCard#getBlock} and {@link StorageCard#getBlocks(int, int)} methods. * @return The current instance. - * @throws UnsupportedOperationException If the current card type does not support system block - * access. + * @throws UnsupportedOperationException If the current card type is not ST25/SRT512. * @since 1.2.0 */ StorageCardSelectionExtension prepareSt25ReadSystemBlock(); From bd6ae36d489192a3af6ae438679a71646a67fcb3 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:39:50 +0100 Subject: [PATCH 4/9] Clarify documentation for `prepareSt25ReadSystemBlock` to reference `StorageCard#getSystemBlock`. --- .../storagecard/card/StorageCardSelectionExtension.java | 4 +++- .../transaction/StorageCardTransactionManager.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java index 7f14164..6090f6a 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java +++ b/src/main/java/org/eclipse/keypop/storagecard/card/StorageCardSelectionExtension.java @@ -62,10 +62,12 @@ public interface StorageCardSelectionExtension extends CardSelectionExtension { *

This method is specific to ST25 and SRT512 card types which provide access to a system block * at address 255 containing card-specific metadata and configuration data. * - *

Once this command is processed, the result is available in {@link StorageCard}. + *

Once this command is processed, the result is available in {@link StorageCard} via {@link + * StorageCard#getSystemBlock()} method. * * @return The current instance. * @throws UnsupportedOperationException If the current card type is not ST25/SRT512. + * @see StorageCard#getSystemBlock() * @since 1.2.0 */ StorageCardSelectionExtension prepareSt25ReadSystemBlock(); diff --git a/src/main/java/org/eclipse/keypop/storagecard/transaction/StorageCardTransactionManager.java b/src/main/java/org/eclipse/keypop/storagecard/transaction/StorageCardTransactionManager.java index e7924ac..48deeb2 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/transaction/StorageCardTransactionManager.java +++ b/src/main/java/org/eclipse/keypop/storagecard/transaction/StorageCardTransactionManager.java @@ -104,10 +104,12 @@ public interface StorageCardTransactionManager *

This method is specific to ST25 and SRT512 card types which provide access to a system block * at address 255 containing card-specific metadata and configuration data. * - *

Once this command is processed, the result is available in {@link StorageCard}. + *

Once this command is processed, the result is available in {@link StorageCard} via {@link + * StorageCard#getSystemBlock()} method. * * @return The current instance. * @throws UnsupportedOperationException If the current card type is not ST25/SRT512. + * @see StorageCard#getSystemBlock() * @since 1.1.0 */ StorageCardTransactionManager prepareSt25ReadSystemBlock(); From 6b6bb7bf27a26302804e25442745e651558d987c Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:40:01 +0100 Subject: [PATCH 5/9] Clarify documentation for `prepareSt25ReadSystemBlock` to reference `StorageCard#getSystemBlock`. --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fea4d7..3cc1b24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [unreleased] +### Added +- **System block management**: New method to handle system blocks for compatible storage card types: + - `StorageCardSelectionExtension.prepareSt25ReadSystemBlock()` method. + ## [1.1.1] - 2026-02-20 ### Removed - Removed SLF4J useless dependency From 54bc3d71ca2d5723c9c9a4d83576c5578a19aba8 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:43:16 +0100 Subject: [PATCH 6/9] Update CHANGELOG to clarify system block management during storage card selection --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cc1b24..a1b6d95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [unreleased] ### Added -- **System block management**: New method to handle system blocks for compatible storage card types: +- **System block management**: New method to handle system blocks during selection for compatible storage card types: - `StorageCardSelectionExtension.prepareSt25ReadSystemBlock()` method. ## [1.1.1] - 2026-02-20 From 2a71fc36e3a3ad6bc8f2caa1770b6f1b8795a2fa Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:46:33 +0100 Subject: [PATCH 7/9] Update CHANGELOG for version 1.2.0 release detailing system block management improvements --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1b6d95..0f3d7f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [unreleased] +## [1.2.0] - 2026-03-18 ### Added -- **System block management**: New method to handle system blocks during selection for compatible storage card types: +- **System block management**: New method to read system blocks during selection for compatible storage card types: - `StorageCardSelectionExtension.prepareSt25ReadSystemBlock()` method. ## [1.1.1] - 2026-02-20 From b1a819e8e1019d6eb887062fe5a4f90dc160a812 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:48:34 +0100 Subject: [PATCH 8/9] Update CHANGELOG to add version 1.2.0 release link --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f3d7f6..50db5fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,7 +106,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.1.0] - 2025-06-18 This is the initial release. -[unreleased]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/1.1.1...HEAD +[unreleased]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/1.2.0...HEAD +[1.2.0]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/1.1.1...1.2.0 [1.1.1]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/1.1.0...1.1.1 [1.1.0]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/1.0.0...1.1.0 [1.0.0]: https://github.com/eclipse-keypop/keypop-storagecard-java-api/compare/0.3.0...1.0.0 From dfd977f75f1a43cc2457d67748855dd563efcbf7 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Wed, 18 Mar 2026 14:52:35 +0100 Subject: [PATCH 9/9] Update `VERSION` to 1.2. --- .../eclipse/keypop/storagecard/StorageCardApiProperties.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/eclipse/keypop/storagecard/StorageCardApiProperties.java b/src/main/java/org/eclipse/keypop/storagecard/StorageCardApiProperties.java index e1f8912..2f90898 100644 --- a/src/main/java/org/eclipse/keypop/storagecard/StorageCardApiProperties.java +++ b/src/main/java/org/eclipse/keypop/storagecard/StorageCardApiProperties.java @@ -23,7 +23,7 @@ public final class StorageCardApiProperties { * * @since 1.0.0 */ - public static final String VERSION = "1.1"; + public static final String VERSION = "1.2"; /** Private constructor */ private StorageCardApiProperties() {}