Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[keyple-dev] Keyple - état travaux 1.0.0 & indépendance des modules
  • From: Pierre Terree <pierre.terree@xxxxxxxxxxxxxx>
  • Date: Thu, 22 Oct 2020 07:10:02 +0000
  • Accept-language: fr-FR, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calypsonet.org; dmarc=pass action=none header.from=calypsonet.org; dkim=pass header.d=calypsonet.org; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DuCXNR7DjLUvaeMfoR3/NbOfhKezQKvU70Mk9M3t7Cc=; b=A0sCqP1bdBZtGN0wDh+rggqR83hMrQBzMJtjc4uFsj4hih84g55Uh41oXOr63g9ZT1cZgo5mjJhCdzu3eqnqCuNYCtqwpDY9paJ25Ra9zbmVV+dHlKmw3bcS5gI5YfcZ6bD0GZKyQgSRXMhtkK+nxNPlnRTXkpTziBeuAEFXkzvkwo2ldkvCrCzRwl30p+3o9axk6H2MoxiH6fdpZ6CPmF/oAF3iZG+3TeCj/tkO+4OTxgbq9RlC8CutzIiHAQePqss+lYrefXiV2D3yEyF4/F+BX6b77bWvuTwIvZi30yOOegz3QyjSPnTBZ5T3Watv0XgT5H1MDumlZXLeSLdeLw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cvqByb4w9K4PbiVkof2RLXD4yQ4M/TODM5AiFjdFbIoaJqiGlGRkyxZpRYuTQuFIGtgtmKhKjhYN4k8GTcd98wGg/1Hc8XBnpN6sgBJiyeokLzfe5BAGaSNytQnDfnCaVXNrjz3wL6sTtq3YL6iF+EATcWW4AOngu1xx+BFGZb/CnZeYXTpWzAbXQSqUHp0LYOXGh2XLDN83LUTuv7oI97Ktj8PK7k25PppZnl1LnCUCjPDvRAKnBI867ue8Qqn5+3wpKJvJ3HtQQxnU2VEIO9IIDCnpmnNSDsD0W4fYhMnysVTbZf75PDNDeZzwsDLrx1In6yTBOuLThYEq2Yej8A==
  • Delivered-to: keyple-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/keyple-dev>
  • List-help: <mailto:keyple-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/keyple-dev>, <mailto:keyple-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/keyple-dev>, <mailto:keyple-dev-request@eclipse.org?subject=unsubscribe>
  • Thread-index: AdaoQHxJS2/ZL+c/TIS1niBo10f5bg==
  • Thread-topic: Keyple - état travaux 1.0.0 & indépendance des modules

Nous pensions pouvoir isolés les dépendances entre les API pour développeurs d'application terminal, développeurs de librairie de solution carte, et les développeurs de plugin, avec un découpage spécifique en différents modules proposant des API: des modules primaires importés de manière unique pour chaque type de développement, et des modules secondaires importées automatiquement par transitivité.

 

Mais nous rencontrons finalement 2 difficultés avec le découpage envisagé :

  • Des dépendances cycliques empêchent les importations des modules par transitivité, ce qui nécessiterait des importations multiples avec des versionings par type de développement.
  • Autre élément plus gênant, les isolations apportées sur l'API plugin envisagée, permette que des évolutions apportées sur les API Reader et API Card n'engendrent pas de mettre à jour les sources des plugins pour qu'ils soient compatibles, mais finalement ce schéma nécessitait encore que les plugins soient recompilés avec les nouvelles références des API Reader et Card, même si leurs sources n'évoluent pas. → cela ne permet pas de répondre totalement au besoin visé, que même si un intégrateur n'a pas à faire évoluer les codes de ses plugins, qu’ils nécessitent de les recompiler si les API Reader et Card évoluent.

 

Nous avons identifié la solution pour résoudre ces 2 problèmes, il s'agit pour le développement de plugin, d'au lieu de proposer une API (Application Programming Interface), de plutôt exposer une SPI (Service Provider Interface). Cependant, il nous parait risqué d'effectuer cette évolution dans le dernier mois qui nous reste avant la sortie de la release 1.0.0.

 

Nous proposons donc pour la release 1.0.0 de prioriser la stabilité de l'API pour les développeurs d'applications, et le support documentaire.

  • Pour la release 1.0.0, nous ne découperons donc pas le Keyple Core en de multiples artifacts, et nous ne spliterons pas les composants du core en de multiple repositories.
  • Le découpage sera pour la version d’après, donc la release 2.0.0, nous remplacerons alors la Plugin API par une Plugin SPI afin que les artifacts de plugins spécifiques puissent être totalement indépendant des versions du Keyple Core. La Plugin SPI reprendra les signatures des méthodes abstraites proposées par la Plugin API: ainsi la transition des plugins construit sur le Core 1.0.0 vers 2.0.0 devrait être aisée. → la promesse sera tenue, aucune adaptation des plugins ne sera nécessaire même si le Core évolue.

 

Pierre Terree

Calypso Networks Association

___________________________________________________________________________________

Mail  / Skype / Teams    :    pierre.terree@xxxxxxxxxxxxxx

Mobile Phone             :    +262 693 11 42 90

WhatsApp                 :    +33 6 16 79 71 12

 


Back to the top