Author: Bob Jacobsen
Keywords: JMRI technical code road map

# JMRI: Cartographie Technologique

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.