Author: Bob Jacobsen
Keywords: JMRI technical code road map

# JMRI: Cartographie Technologique

D'information le plus actuelle se trouve ici (en Anglais).

Cette page est la feuille de route pour le développement futur de JMRI, incluant les changements de notre utilisation des Technologies Java. Elle est maintenue et mise à jour par le biais de la poursuite de la discussion sur la liste de diffusion des développeurs-jmri.

Il y a aussi une page contenant l'historique, particulièrement la saga de la façon dont nous nous sommes déplacés vers l'avant pour Java 1.6 et Java 1.8 à travers une série de changements liés à la plate-forme.

## Versions JMRI

Cette section décrit les plans (théoriques) pour les versions JMRI à l'avenir.

Version | Description | Date | JRE | JDK
3.11.* | Série de Développment |  | 1.8 | 1.8
4.0 | Version de Production, point culminant des séries 3.11.* | Juillet 2015 terminé
4.1* | Série de Développment |  | 1.8 | 1.8
4.3.* | Série de Développment |  |  | 1.8 | 1.8
4.4 | Version de Production, point culminant des séries 4.3.* | Juillet 2016 (fait)
4.5.* | Série de Développment |  |  | 1.8 | 1.8
4.6 | Version de Production, point culminant des séries 4.5.* | Automne 2016 | 1.8 | 1.8

#### JMRI pendant et après 2016

La série JMRI 4.1 * de version test à l'Automne 2015 a continué avec Java 1.8 et le même jeu de librairies incluses. Les séries suivantes 4.3.*, au printemps 2016, continueront avec Java 1.8, mais peuvent impliquer d'autres mises à jour.

- La librairie pour le serveur web Jetty incluse, sera mis à jour à la version 9.3.6.
- À un certain moment, nous devons migrer loin de JavaHelp et JHelpDev. Au minimum, nous avons besoin de remplacer le rendu. Il y a plusieurs systèmes d'aide alternatifs disponilbles Oracle Help pourrait être un bon choix. DocBook qui a un outil pour générer de multiples formes de documentation est également envisagé.
- À un certain point, nous devons actualiser JUnit pour l'actuelle JUnit version 4.12 . Parmi d'autres améliorations, ceci permettra l'utilisation de l' assertion par mot-clé de Java. Nous aurons besoin d'établir des conventions sur la façon d'utiliser cela.
- La technologie d'accès USB a beaucoup évoluée depuis que le support pour certaines bibliothèques de bases a été ajouté à JMRI. À un certain moment, nous remplacerons ces premières versions de librairie, mais cela cassera certains scripts utilisateurs.
- Notre Méthodologie de connexion est maintenant un hybride de connexion natif ( dont certains comprennent les bibliothèques ), Log4J ( notre solution initiale ) et SLF4J ( Le plus récent ). Il est probable que nous allons finalement simplifier cela.

### Version Java et Support Système d'Exploitation

Plus d'information sur les versions Java et les systèmes d'exploitation qui les utilisent est sur une page séparée.

## Notes de Migration

C'est un recueils de notes pour les migrations de code variés en cours ou terminés. Voir aussi la section concernée sur la migration vers Java 1.8.

### De JDOM 1 à JDOM 2

JMRI 3.11 déplacé de JDOM version 1 tonne JDOM la version 2. Cela impliquait un nouveau fichier jdom-2.0.5.jar (à la place du jdom.jar précédent) , changements au démarrage et construire des fichiers de contrôle, et certains changements de code requis:

- Les classes JDOM 2 sont dans le paquet org.jdom2 au lieu de org.jdom. Ceci demande quelques changements pour importer le statuts et les class-references dans le code source.
- Le formatage de sortie par défaut est différent, demandant des changements mineurs dans la classe XmlFile des routines de sortie par exemple.

En plus, JDOM 2 utilise des génériques dans ses paramètres d'entrée et les valeurs retournées. Ceci signifie que vous pouvez supprimer cats ( maintenant redondant ) dans de nombreux emplacements. Jenkins vale signaler.