BT

Java 9 va supprimer CORBA du Classpath par Défaut

| par Abraham Marín Pérez Suivre 9 Abonnés , traduit par Slim Ouertani Suivre 8 Abonnés le 22 juil. 2016. Durée de lecture estimée: 2 minutes |

Dans le cadre de la transition en cours vers un système de module, CORBA ainsi que d'autres modules Java EE ne seront désormais plus inclus dans le classpath par défaut de Java 9. Ces modules seront toujours inclus dans les distributions par défaut, mais les développeurs devront intégrer des arguments en ligne de commande spécifiques pour être en mesure de les utiliser. Le changement affectera uniquement les applications non-modulaires ciblant Java 9, les modulaires ayant déjà besoin d'indiquer explicitement tous les modules dont elles dépendent.

Comme expliqué dans The State of the Module System, l'ajout des capacités modulaires à Java 9 ne forcera pas les développeurs à les utiliser tout de suite, en revanche, un certain nombre d’options rétro compatibles sont rendues disponibles. L'une d'elles permettra la compilation de code traditionnel et non-modulaire en Java 9. Pour que cela fonctionne, le code non-modulaire sera ajouté par le compilateur à un module spécifique nommé "unnamed module", qui expose par défaut tous les packages qu’il contient et n'a pas de dépendances explicites.

Malheureusement, le fait que le module anonyme ne possède pas de dépendances explicites impose des défis de résolution de module. Dans une application Java modulaire, le module en cours de compilation aura une liste explicite des dépendances nécessaires. Le compilateur peut utiliser ces informations, ainsi que les dépendances des dépendances, pour calculer un graphe qui inclut la “transitive-closure” de tous les modules directement ou indirectement nécessaires au module compilé. Puisque le module anonyme ne précise aucunes dépendances, il ne peut pas être utilisé comme base pour calculer le graphe du module.

Pour résoudre ce problème, Java 9 devra utiliser une valeur par défaut comme module racine lors de la compilation du code dans le module anonyme. Avec la dernière modification, ce module racine par défaut a été changé de java.se.ee à java.se, ce qui signifie que toutes les extensions Java EE sont désormais indisponibles par défaut. Ce changement permettra d'éviter des affrontements avec les serveurs d'applications qui incluent leurs propres implémentations de packages Java EE.

Ceux qui souhaitent migrer vers Java 9, mais qui ne sont pas prêts à réécrire leurs applications selon le système de module peuvent encore enchaîner ces dépendances à la classpath en utilisant l’argument en ligne de commande "-addmods <module.name>" lors de la compilation ou de l'exécution de l'application.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT