L'architecte en chef de Java d'Oracle a proposé des ajustements de l’architecture modulaire de Java 9. L’éditeur précise que ces révisions ne sont pas une réponse aux récentes objections de Red Hat et d'IBM, mais elles semblent répondre à l'une des préoccupations ; le système des modules standardisés.

Dans une publication postée hier jeudi sur OpenJDK, une proposition de Mark Reinhold, architecte en chef du groupe Java chez Oracle, détaille une fonctionnalité baptisée AutomaticModuleNames. Il a également référencé le projet sur son fil Twitter : « Module names should be reverse-DNS and so automatic modules can be given stable names. » Un représentant d'Oracle a déclaré que la proposition était un travail continu sur des questions en cours et séparées des problèmes soulevés par Red Hat et d'IBM au sujet de la complexité de la Java Platform Module System (JPMS).

Convertir le code en modules

En résumant le sujet dans sa proposition de jeudi, Mark Reinhold a mentionné la révision de l'algorithme qui attribue automatiquement le nom des modules pour inclure l'identifiant de l’environnement Maven lorsqu'il est disponible dans le fichier « pom.properties » du fichier JAR. De cette façon, les noms de modules « sont moins susceptibles d’entrer en collision, ou bien supprimer la fonctionnalité modules automatiques, car cela peut apporter plus de difficultés que de bénéfices ». Il propose ensuite de ne pas laisser tomber la fonctionnalité modules automatiques, car il s’agit d’une partie essentielle de la migration, pour aider les développeurs à convertir leur code en modules.

L’architecte d’Oracle suggère d’attribuer un manifeste de type « Automatic-Module-Name » aux fichiers JAR en lieu et place du simple « Module-Name », dont la valeur sera utilisée pour nommer le module automatique défini par ce fichier JAR. Mark Reinhold recommande également que tous les modules standardisés soient nommés selon la convention reverse-DNS utilisée pour les noms de domaine Internet. Il demande également que les développeurs soient conscients des risques lors de la publication automatique de modules explicitement nommés notamment dans le cadre d’une large diffusion. « Un module automatique n'est pas fiable, car il peut dépendre des types sur le chemin de classe et son nom et les paquets exportés peuvent changer si et quand il est converti en un module explicitement nommé », a déclaré Mark Reinhold.

Une sortie retardée ? 

La modularité est la principale caractéristique de Java Development Kit (JDK) 9 dont la version stable est attendue le 27 juillet prochain. Mais un autre responsable d'Oracle a reconnu cette semaine que les plaintes relatives au système modulaire pourraient effectivement retarder la sortie de Java 9.