From fc6f6e697542b1506a2cda9f348e4f68c6296f2e Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Fri, 13 Mar 2026 16:04:45 +0100 Subject: [PATCH 01/11] Update dependencies and refactor GenericCard API usage across use cases --- Example_Service/build.gradle.kts | 3 ++- .../UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java | 5 +++-- .../Main_ProtocolBasedSelection_Pcsc.java | 4 ++-- .../Main_AidBasedSelection_Pcsc.java | 2 +- .../Main_ScheduledSelection_Pcsc.java | 2 +- .../Main_SequentialMultiSelection_Pcsc.java | 4 ++-- .../Main_GroupedMultiSelection_Pcsc.java | 4 ++-- 7 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Example_Service/build.gradle.kts b/Example_Service/build.gradle.kts index 3236e83..45842ee 100644 --- a/Example_Service/build.gradle.kts +++ b/Example_Service/build.gradle.kts @@ -19,9 +19,10 @@ dependencies { implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") implementation("org.eclipse.keyple:keyple-common-java-api") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") implementation("org.eclipse.keyple:keyple-plugin-pcsc-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32") diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java index 82277d0..05d3c8b 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java @@ -13,7 +13,6 @@ package org.eclipse.keyple.example.core.service.UseCase1_BasicSelection; import java.util.List; -import org.eclipse.keyple.card.generic.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.Plugin; import org.eclipse.keyple.core.service.SmartCardService; @@ -30,6 +29,7 @@ import org.eclipse.keypop.reader.selection.CardSelectionResult; import org.eclipse.keypop.reader.selection.IsoCardSelector; import org.eclipse.keypop.reader.selection.spi.SmartCard; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,6 +92,7 @@ public static void main(String[] args) { List apduResponses = GenericExtensionService.getInstance() + .getGenericCardApiFactory() .createCardTransaction(cardReader, smartCard) .prepareApdu(cplcApdu) .processCommands(ChannelControl.CLOSE_AFTER) @@ -192,7 +193,7 @@ private static SmartCard selectCard(CardReader reader) { CardSelectionManager cardSelectionManager = readerApiFactory.createCardSelectionManager(); IsoCardSelector cardSelector = readerApiFactory.createIsoCardSelector(); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); CardSelectionResult selectionResult = cardSelectionManager.processCardSelectionScenario(reader); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java index 93bf3a7..f8cce5b 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java @@ -12,7 +12,7 @@ ************************************************************************************** */ package org.eclipse.keyple.example.core.service.UseCase2_ProtocolBasedSelection; -import org.eclipse.keyple.card.generic.GenericCardSelectionExtension; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.plugin.pcsc.PcscCardCommunicationProtocol; @@ -178,7 +178,7 @@ private static SmartCard selectCard(CardReader reader) { CardSelector cardSelector = readerApiFactory.createBasicCardSelector().filterByCardProtocol(MIFARE_ULTRALIGHT_PROTOCOL); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); CardSelectionResult selectionResult = cardSelectionManager.processCardSelectionScenario(reader); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java index 9467129..7a2e55a 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java @@ -105,7 +105,7 @@ public static void main(String[] args) { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, GenericExtensionService.getInstance().createGenericCardSelectionExtension()); + cardSelector, GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension()); // Actual card communication: run the selection scenario. CardSelectionResult selectionResult = diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java index b2c3007..2b250ad 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java @@ -101,7 +101,7 @@ public static void main(String[] args) throws InterruptedException { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, GenericExtensionService.getInstance().createGenericCardSelectionExtension()); + cardSelector, GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension()); // Schedule the selection scenario. cardSelectionManager.scheduleCardSelectionScenario( diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java index 1225471..efdf58a 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java @@ -12,7 +12,7 @@ ************************************************************************************** */ package org.eclipse.keyple.example.core.service.UseCase5_SequentialMultiSelection; -import org.eclipse.keyple.card.generic.GenericCardSelectionExtension; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.core.util.HexUtil; @@ -110,7 +110,7 @@ public static void main(String[] args) { .setFileOccurrence(CommonIsoCardSelector.FileOccurrence.FIRST); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java index 3f738c3..0f6137b 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java @@ -13,7 +13,7 @@ package org.eclipse.keyple.example.core.service.UseCase6_GroupedMultiSelection; import java.util.Map; -import org.eclipse.keyple.card.generic.GenericCardSelectionExtension; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.core.util.HexUtil; @@ -102,7 +102,7 @@ public static void main(String[] args) { CardSelectionManager cardSelectionManager = readerApiFactory.createCardSelectionManager(); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); // AID based selection: get the first application occurrence matching the AID, keep the // physical channel open From 15e4cdbd924a6079157c4df4b33d1c1e67f06bb8 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Fri, 13 Mar 2026 17:50:50 +0100 Subject: [PATCH 02/11] Fix incorrect package paths in README hyperlinks for example use cases --- Example_Service/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Example_Service/README.md b/Example_Service/README.md index 78988bb..c0850a2 100644 --- a/Example_Service/README.md +++ b/Example_Service/README.md @@ -6,35 +6,35 @@ select card and how to observe plugins and readers. Each example can be run independently. * Use Case Generic 1 – Basic - selection: [UseCase1_BasicSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase1_BasicSelection) + selection: [UseCase1_BasicSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection) * Demonstrates the most basic selection mode where no conditions are required to select a card. * Implementations: * For PC/SC plugin: [`Main_BasicSelection_Pcsc.java`] * For Stub plugin: [`Main_BasicSelection_Stub.java`] * Use Case Generic 2 – Protocol based - selection: [UseCase2_ProtocolBasedSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase2_ProtocolBasedSelection) + selection: [UseCase2_ProtocolBasedSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection) * Demonstrates the selection mode where the card's protocol is used as a differentiator. * Implementations: * For PC/SC plugin: [`Main_ProtocolBasedSelection_Pcsc.java`] * For Stub plugin: [`Main_ProtocolBasedSelection_Stub.java`] * Use Case Generic 3 – Aid based - selection: [UseCase3_AidBasedSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase3_AidBasedSelection) + selection: [UseCase3_AidBasedSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection) * Demonstrates the selection mode where the card is selected by its DF Name with an appropriate AID. * Implementations: * For PC/SC plugin: [`Main_AidBasedSelection_Pcsc.java`] * For Stub plugin: [`Main_AidBasedSelection_Stub.java`] * Use Case Generic 4 – Aid based - selection: [UseCase4_ScheduledSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase4_ScheduledSelection) + selection: [UseCase4_ScheduledSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection) * Demonstrates the selection is processed as soon as the card is detected by an observable reader. * Implementations: * For PC/SC plugin: [`Main_ScheduledSelection_Pcsc.java`] * For Stub plugin: [`Main_ScheduledSelection_Stub.java`] * Use Case Generic 5 – Sequential multiple - selection: [UseCase5_SequentialMultiSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase5_SequentialMultiSelection) + selection: [UseCase5_SequentialMultiSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection) * Demonstrates multiple selections performed successively on the same card with the navigation options (FIRST/NEXT) defined by the ISO standard. * Implementations: @@ -42,7 +42,7 @@ Each example can be run independently. * For Stub plugin: [`Main_SequentialMultiSelection_Stub.java`] * Use Case Generic 6 – Grouped multiple - selection: [UseCase6_GroupedMultiSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase6_GroupedMultiSelection) + selection: [UseCase6_GroupedMultiSelection](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection) * Demonstrates multiple selections made at once on the same card with the navigation options (FIRST/NEXT) defined by the ISO standard and returned as a single selection result. * Implementations: @@ -50,7 +50,7 @@ Each example can be run independently. * For Stub plugin: [`Main_GroupedMultiSelection_Stub.java`] * Use Case Generic 7 – Plugin and reader - observation: [UseCase7_PluginAndReaderObservation](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/core/service/example/UseCase7_PluginAndReaderObservation) + observation: [UseCase7_PluginAndReaderObservation](https://github.com/eclipse-keyple/keyple-java-example/tree/main/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase7_PluginAndReaderObservation) * Demonstrates the observation of a plugin to monitor the connection/disconnection of readers and of the readers to monitor the insertion/removal of cards. * Implementations: From 5e458cbbcc4f6d1bf626ef3c7a40c85c49b697d1 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Fri, 13 Mar 2026 18:17:13 +0100 Subject: [PATCH 03/11] Spotless apply --- .../UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java | 6 ++++-- .../Main_ProtocolBasedSelection_Pcsc.java | 6 ++++-- .../Main_AidBasedSelection_Pcsc.java | 5 ++++- .../Main_ScheduledSelection_Pcsc.java | 5 ++++- .../Main_SequentialMultiSelection_Pcsc.java | 6 ++++-- .../Main_GroupedMultiSelection_Pcsc.java | 6 ++++-- 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java index 05d3c8b..3c9fdf2 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase1_BasicSelection/Main_BasicSelection_Pcsc.java @@ -21,6 +21,7 @@ import org.eclipse.keyple.plugin.pcsc.PcscCardCommunicationProtocol; import org.eclipse.keyple.plugin.pcsc.PcscPluginFactoryBuilder; import org.eclipse.keyple.plugin.pcsc.PcscReader; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keypop.reader.CardReader; import org.eclipse.keypop.reader.ChannelControl; import org.eclipse.keypop.reader.ConfigurableCardReader; @@ -29,7 +30,6 @@ import org.eclipse.keypop.reader.selection.CardSelectionResult; import org.eclipse.keypop.reader.selection.IsoCardSelector; import org.eclipse.keypop.reader.selection.spi.SmartCard; -import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -193,7 +193,9 @@ private static SmartCard selectCard(CardReader reader) { CardSelectionManager cardSelectionManager = readerApiFactory.createCardSelectionManager(); IsoCardSelector cardSelector = readerApiFactory.createIsoCardSelector(); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension(); cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); CardSelectionResult selectionResult = cardSelectionManager.processCardSelectionScenario(reader); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java index f8cce5b..c1f82f3 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase2_ProtocolBasedSelection/Main_ProtocolBasedSelection_Pcsc.java @@ -12,12 +12,12 @@ ************************************************************************************** */ package org.eclipse.keyple.example.core.service.UseCase2_ProtocolBasedSelection; -import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.plugin.pcsc.PcscCardCommunicationProtocol; import org.eclipse.keyple.plugin.pcsc.PcscPluginFactoryBuilder; import org.eclipse.keyple.plugin.pcsc.PcscReader; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keypop.reader.CardReader; import org.eclipse.keypop.reader.ConfigurableCardReader; import org.eclipse.keypop.reader.ReaderApiFactory; @@ -178,7 +178,9 @@ private static SmartCard selectCard(CardReader reader) { CardSelector cardSelector = readerApiFactory.createBasicCardSelector().filterByCardProtocol(MIFARE_ULTRALIGHT_PROTOCOL); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension(); cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); CardSelectionResult selectionResult = cardSelectionManager.processCardSelectionScenario(reader); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java index 7a2e55a..7c0c6cd 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase3_AidBasedSelection/Main_AidBasedSelection_Pcsc.java @@ -105,7 +105,10 @@ public static void main(String[] args) { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension()); + cardSelector, + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension()); // Actual card communication: run the selection scenario. CardSelectionResult selectionResult = diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java index 2b250ad..c0412b9 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase4_ScheduledSelection/Main_ScheduledSelection_Pcsc.java @@ -101,7 +101,10 @@ public static void main(String[] args) throws InterruptedException { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension()); + cardSelector, + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension()); // Schedule the selection scenario. cardSelectionManager.scheduleCardSelectionScenario( diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java index efdf58a..6590afd 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase5_SequentialMultiSelection/Main_SequentialMultiSelection_Pcsc.java @@ -12,7 +12,6 @@ ************************************************************************************** */ package org.eclipse.keyple.example.core.service.UseCase5_SequentialMultiSelection; -import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.core.util.HexUtil; @@ -20,6 +19,7 @@ import org.eclipse.keyple.plugin.pcsc.PcscCardCommunicationProtocol; import org.eclipse.keyple.plugin.pcsc.PcscPluginFactoryBuilder; import org.eclipse.keyple.plugin.pcsc.PcscReader; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keypop.reader.CardReader; import org.eclipse.keypop.reader.ConfigurableCardReader; import org.eclipse.keypop.reader.ReaderApiFactory; @@ -110,7 +110,9 @@ public static void main(String[] args) { .setFileOccurrence(CommonIsoCardSelector.FileOccurrence.FIRST); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension(); // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection(cardSelector, genericCardSelectionExtension); diff --git a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java index 0f6137b..b91796c 100644 --- a/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java +++ b/Example_Service/src/main/java/org/eclipse/keyple/example/core/service/UseCase6_GroupedMultiSelection/Main_GroupedMultiSelection_Pcsc.java @@ -13,7 +13,6 @@ package org.eclipse.keyple.example.core.service.UseCase6_GroupedMultiSelection; import java.util.Map; -import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.core.util.HexUtil; @@ -21,6 +20,7 @@ import org.eclipse.keyple.plugin.pcsc.PcscCardCommunicationProtocol; import org.eclipse.keyple.plugin.pcsc.PcscPluginFactoryBuilder; import org.eclipse.keyple.plugin.pcsc.PcscReader; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keypop.reader.CardReader; import org.eclipse.keypop.reader.ConfigurableCardReader; import org.eclipse.keypop.reader.ReaderApiFactory; @@ -102,7 +102,9 @@ public static void main(String[] args) { CardSelectionManager cardSelectionManager = readerApiFactory.createCardSelectionManager(); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().getGenericCardApiFactory().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension(); // AID based selection: get the first application occurrence matching the AID, keep the // physical channel open From 55211a01049e62685ecf9ac45c68ab08e4926e18 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Fri, 13 Mar 2026 18:20:12 +0100 Subject: [PATCH 04/11] Update build.gradle.kts with new Keypop and Keyple dependency versions --- Example_Service_Resource/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Example_Service_Resource/build.gradle.kts b/Example_Service_Resource/build.gradle.kts index 8d996cb..ea1faba 100644 --- a/Example_Service_Resource/build.gradle.kts +++ b/Example_Service_Resource/build.gradle.kts @@ -18,11 +18,12 @@ dependencies { // 'https://keyple.org/components/overview/configuration-wizard/') implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") implementation("org.eclipse.keyple:keyple-service-resource-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") implementation("org.eclipse.keyple:keyple-plugin-stub-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32") From 6e2a12590e5dc4c36162581898971ca7c65f9b6c Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Fri, 13 Mar 2026 18:20:41 +0100 Subject: [PATCH 05/11] Refactor GenericCard API usage in Main_CardResourceService_Stub --- .../Main_CardResourceService_Stub.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Example_Service_Resource/src/main/java/org/eclipse/keyple/example/core/service/resource/UseCase1_CardResourceService/Main_CardResourceService_Stub.java b/Example_Service_Resource/src/main/java/org/eclipse/keyple/example/core/service/resource/UseCase1_CardResourceService/Main_CardResourceService_Stub.java index e0cf693..c95a9dd 100644 --- a/Example_Service_Resource/src/main/java/org/eclipse/keyple/example/core/service/resource/UseCase1_CardResourceService/Main_CardResourceService_Stub.java +++ b/Example_Service_Resource/src/main/java/org/eclipse/keyple/example/core/service/resource/UseCase1_CardResourceService/Main_CardResourceService_Stub.java @@ -12,7 +12,6 @@ ************************************************************************************** */ package org.eclipse.keyple.example.core.service.resource.UseCase1_CardResourceService; -import org.eclipse.keyple.card.generic.GenericCardSelectionExtension; import org.eclipse.keyple.card.generic.GenericExtensionService; import org.eclipse.keyple.core.service.*; import org.eclipse.keyple.core.service.resource.*; @@ -24,6 +23,7 @@ import org.eclipse.keyple.plugin.stub.StubPluginFactoryBuilder; import org.eclipse.keyple.plugin.stub.StubReader; import org.eclipse.keyple.plugin.stub.StubSmartCard; +import org.eclipse.keypop.genericcard.GenericCardSelectionExtension; import org.eclipse.keypop.reader.CardReader; import org.eclipse.keypop.reader.ConfigurableCardReader; import org.eclipse.keypop.reader.ReaderApiFactory; @@ -94,7 +94,9 @@ public static void main(String[] args) throws InterruptedException { readerApiFactory.createIsoCardSelector().filterByPowerOnData(ATR_REGEX_A); GenericCardSelectionExtension genericCardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension(); + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension(); CardResourceProfileExtension cardResourceExtensionA = GenericExtensionService.getInstance() From 1eadb31abb3b9b1d3188fb922a59df5401b2c130 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 14:45:05 +0100 Subject: [PATCH 06/11] Reorder dependencies in build.gradle.kts for consistency --- Example_Service/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Example_Service/build.gradle.kts b/Example_Service/build.gradle.kts index 45842ee..0242119 100644 --- a/Example_Service/build.gradle.kts +++ b/Example_Service/build.gradle.kts @@ -18,8 +18,8 @@ dependencies { // 'https://keyple.org/components/overview/configuration-wizard/') implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") - implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") + implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") From e63756c68902a320e1b39157c47d80e7546875f4 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 14:46:29 +0100 Subject: [PATCH 07/11] Update CHANGELOG: migrate to keyple-card-generic-java-lib 4.0.0-SNAPSHOT, fix example URLs --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8eaf31..551814e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +### Changed +- Switched to `keyple-card-generic-java-lib` `4.0.0-SNAPSHOT` + +### Fixed +- Fixed example URLs + ## [2026-03-10] ### Upgraded - Upgraded [Keyple Java BOM](https://github.com/eclipse-keyple/keyple-java-bom) to `2026.02.20` From 684fcf899cb43623a51d0a3fcb4935be218699b3 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 14:51:20 +0100 Subject: [PATCH 08/11] Refactor GenericCard API usage and update dependencies in build.gradle.kts --- Example_Plugin_PCSC/build.gradle.kts | 3 ++- .../Main_ChangeProtocolRules_Pcsc.java | 3 ++- .../UseCase4_TransmitControl/Main_TransmitControl_Pcsc.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Example_Plugin_PCSC/build.gradle.kts b/Example_Plugin_PCSC/build.gradle.kts index a27c715..f5d1d6b 100644 --- a/Example_Plugin_PCSC/build.gradle.kts +++ b/Example_Plugin_PCSC/build.gradle.kts @@ -18,11 +18,12 @@ dependencies { // 'https://keyple.org/components/overview/configuration-wizard/') implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") implementation("org.eclipse.keyple:keyple-service-resource-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") implementation("org.eclipse.keyple:keyple-plugin-pcsc-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32") diff --git a/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase3_ChangeProtocolRules/Main_ChangeProtocolRules_Pcsc.java b/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase3_ChangeProtocolRules/Main_ChangeProtocolRules_Pcsc.java index 67527cd..def7b15 100644 --- a/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase3_ChangeProtocolRules/Main_ChangeProtocolRules_Pcsc.java +++ b/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase3_ChangeProtocolRules/Main_ChangeProtocolRules_Pcsc.java @@ -114,7 +114,8 @@ public static void main(String[] args) { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, cardExtension.createGenericCardSelectionExtension()); + cardSelector, + cardExtension.getGenericCardApiFactory().createGenericCardSelectionExtension()); // Actual card communication: run the selection scenario. CardSelectionResult selectionResult = cardSelectionManager.processCardSelectionScenario(reader); diff --git a/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase4_TransmitControl/Main_TransmitControl_Pcsc.java b/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase4_TransmitControl/Main_TransmitControl_Pcsc.java index c0917bd..e3ddd98 100644 --- a/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase4_TransmitControl/Main_TransmitControl_Pcsc.java +++ b/Example_Plugin_PCSC/src/main/java/org/eclipse/keyple/example/plugin/pcsc/UseCase4_TransmitControl/Main_TransmitControl_Pcsc.java @@ -116,7 +116,8 @@ public static void main(String[] args) throws InterruptedException { // Prepare the selection by adding the created generic selection to the card selection scenario. cardSelectionManager.prepareSelection( - cardSelector, cardExtension.createGenericCardSelectionExtension()); + cardSelector, + cardExtension.getGenericCardApiFactory().createGenericCardSelectionExtension()); // Schedule the selection scenario, always notify card presence. cardSelectionManager.scheduleCardSelectionScenario( From 1c8e9e6fbd7fbe996f92a54fa0f70fffd8bfe69d Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 15:22:44 +0100 Subject: [PATCH 09/11] Update dependencies and refactor GenericCard API usage in CoreExamplesActivity --- Example_Plugin_Android_OMAPI/app/build.gradle.kts | 3 ++- .../plugin/android/omapi/activity/CoreExamplesActivity.kt | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Example_Plugin_Android_OMAPI/app/build.gradle.kts b/Example_Plugin_Android_OMAPI/app/build.gradle.kts index 780db70..d4c8c37 100644 --- a/Example_Plugin_Android_OMAPI/app/build.gradle.kts +++ b/Example_Plugin_Android_OMAPI/app/build.gradle.kts @@ -27,11 +27,12 @@ dependencies { // 'https://keyple.org/components/overview/configuration-wizard/') implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keypop:keypop-calypso-card-java-api") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") implementation("org.eclipse.keyple:keyple-plugin-android-omapi-java-lib") // End Keyple configuration // Android components diff --git a/Example_Plugin_Android_OMAPI/app/src/main/kotlin/org/eclipse/keyple/example/plugin/android/omapi/activity/CoreExamplesActivity.kt b/Example_Plugin_Android_OMAPI/app/src/main/kotlin/org/eclipse/keyple/example/plugin/android/omapi/activity/CoreExamplesActivity.kt index 19672d1..a4822cf 100644 --- a/Example_Plugin_Android_OMAPI/app/src/main/kotlin/org/eclipse/keyple/example/plugin/android/omapi/activity/CoreExamplesActivity.kt +++ b/Example_Plugin_Android_OMAPI/app/src/main/kotlin/org/eclipse/keyple/example/plugin/android/omapi/activity/CoreExamplesActivity.kt @@ -107,7 +107,9 @@ class CoreExamplesActivity : AbstractExampleActivity() { /** Create a card selection extension using the generic card extension. */ val cardSelectionExtension = - GenericExtensionService.getInstance().createGenericCardSelectionExtension() + GenericExtensionService.getInstance() + .getGenericCardApiFactory() + .createGenericCardSelectionExtension() cardSelectionManager.prepareSelection(cardSelector, cardSelectionExtension) /** Release the channel after the selection is done */ From 043d3c4b30e6f216dfb88cae6470f494f0e2502f Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 15:38:07 +0100 Subject: [PATCH 10/11] Reorder dependencies in build.gradle.kts for clarity and consistency --- Example_Plugin_Android_OMAPI/app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Example_Plugin_Android_OMAPI/app/build.gradle.kts b/Example_Plugin_Android_OMAPI/app/build.gradle.kts index d4c8c37..6008c12 100644 --- a/Example_Plugin_Android_OMAPI/app/build.gradle.kts +++ b/Example_Plugin_Android_OMAPI/app/build.gradle.kts @@ -27,8 +27,8 @@ dependencies { // 'https://keyple.org/components/overview/configuration-wizard/') implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) implementation("org.eclipse.keypop:keypop-reader-java-api") - implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keypop:keypop-calypso-card-java-api") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") From 839deef1828562d434cfa6f15bf4e91bf89f9502 Mon Sep 17 00:00:00 2001 From: VincentDucrot Date: Mon, 16 Mar 2026 16:26:55 +0100 Subject: [PATCH 11/11] Update BOM version --- Example_Plugin_Android_OMAPI/app/build.gradle.kts | 6 +++--- Example_Plugin_PCSC/build.gradle.kts | 6 +++--- Example_Service/build.gradle.kts | 6 +++--- Example_Service_Resource/build.gradle.kts | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Example_Plugin_Android_OMAPI/app/build.gradle.kts b/Example_Plugin_Android_OMAPI/app/build.gradle.kts index 6008c12..c1ac77c 100644 --- a/Example_Plugin_Android_OMAPI/app/build.gradle.kts +++ b/Example_Plugin_Android_OMAPI/app/build.gradle.kts @@ -25,14 +25,14 @@ dependencies { "exclude" to listOf("org.simalliance.openmobileapi.jar")))) // Begin Keyple configuration (generated by // 'https://keyple.org/components/overview/configuration-wizard/') - implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) + implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.03.16")) implementation("org.eclipse.keypop:keypop-reader-java-api") implementation("org.eclipse.keypop:keypop-calypso-card-java-api") - implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib") implementation("org.eclipse.keyple:keyple-plugin-android-omapi-java-lib") // End Keyple configuration // Android components diff --git a/Example_Plugin_PCSC/build.gradle.kts b/Example_Plugin_PCSC/build.gradle.kts index f5d1d6b..cb6f004 100644 --- a/Example_Plugin_PCSC/build.gradle.kts +++ b/Example_Plugin_PCSC/build.gradle.kts @@ -16,14 +16,14 @@ plugins { dependencies { // Begin Keyple configuration (generated by // 'https://keyple.org/components/overview/configuration-wizard/') - implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) + implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.03.16")) implementation("org.eclipse.keypop:keypop-reader-java-api") - implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") implementation("org.eclipse.keyple:keyple-service-resource-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib") implementation("org.eclipse.keyple:keyple-plugin-pcsc-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32") diff --git a/Example_Service/build.gradle.kts b/Example_Service/build.gradle.kts index 0242119..68532d1 100644 --- a/Example_Service/build.gradle.kts +++ b/Example_Service/build.gradle.kts @@ -16,13 +16,13 @@ plugins { dependencies { // Begin Keyple configuration (generated by // 'https://keyple.org/components/overview/configuration-wizard/') - implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) + implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.03.16")) implementation("org.eclipse.keypop:keypop-reader-java-api") - implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib") implementation("org.eclipse.keyple:keyple-plugin-pcsc-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32") diff --git a/Example_Service_Resource/build.gradle.kts b/Example_Service_Resource/build.gradle.kts index ea1faba..dda58a1 100644 --- a/Example_Service_Resource/build.gradle.kts +++ b/Example_Service_Resource/build.gradle.kts @@ -16,14 +16,14 @@ plugins { dependencies { // Begin Keyple configuration (generated by // 'https://keyple.org/components/overview/configuration-wizard/') - implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.02.20")) + implementation(platform("org.eclipse.keyple:keyple-java-bom:2026.03.16")) implementation("org.eclipse.keypop:keypop-reader-java-api") - implementation("org.eclipse.keypop:keypop-genericcard-jvm-api:1.0.0") + implementation("org.eclipse.keypop:keypop-genericcard-jvm-api") implementation("org.eclipse.keyple:keyple-common-java-api") implementation("org.eclipse.keyple:keyple-util-java-lib") implementation("org.eclipse.keyple:keyple-service-java-lib") implementation("org.eclipse.keyple:keyple-service-resource-java-lib") - implementation("org.eclipse.keyple:keyple-card-generic-java-lib:4.0.0-SNAPSHOT") + implementation("org.eclipse.keyple:keyple-card-generic-java-lib") implementation("org.eclipse.keyple:keyple-plugin-stub-java-lib") // End Keyple configuration implementation("org.slf4j:slf4j-simple:1.7.32")