Nouveautés de la version 3.2 (JDT)

Ce document contient les descriptions des modifications les plus intéressantes ou les plus importantes apportées aux outils de développement Java pour l'édition 3.2 d'Eclipse. Elles sont regroupées dans les sections suivantes :

Voir aussi le document Nouveautés d'Eclipse Platform version 3.2 pour savoir quelles sont les modifications de la plateforme.

Restructuration Java

Introduire l'adressage indirect

Introduire l'adressage indirect est une nouvelle restructuration qui vous permet de rediriger tous les demandeurs d'une méthode vers une nouvelle méthode. La nouvelle méthode appelle la méthode d'origine. Vous pouvez remplacer la mise en oeuvre par défaut de la nouvelle méthode par une autre de votre choix si vous le souhaitez.

Ce type d'adressage indirect et utile lorsqu'un nouveau comportement a besoin d'être introduit à une méthode mais que les cas suivants se produisent :

  • La méthode ne peut pas être modifiée parce qu'elle provient d'une bibliothèque.
  • La méthode ne doit pas être modifiée parce qu'il s'agit d'une méthode API.

Utilisez l'adressage indirect pour corriger les erreurs de la méthode d'origine ou comme moyen rapide d'ajouter du code avant ou après des appels à une méthode.

Pour exécuter la restructuration Introduire l'adressage indirect, sélectionnez une méthode, appelez Restructurer> Introduire l'adressage indirect, et indiquez le nom et la classe déclarante de la nouvelle méthode.

boîte de dialogue Introduire l'adressage indirect

La méthode est ajoutée à la classe déclarante sélectionnée.

aperçu d'Introduire l'adressage indirect avec référence mise à jour

Tous les références sont mises à jour afin d'appeler la nouvelle méthode.

Résultat après Introduire l'adressage indirect

Extraire la restructuration de superclasse

Une nouvelle restructuration appelée Extraire la superclasse permet d'extraire une superclasse commune à partir d'un ensemble de types apparentés. Les types apparentés sélectionnés deviennent des sous-classes directes de la superclasse extraite après application de la restructuration. De plus, Extraire la superclasse permet d'utiliser la superclasse extraite chaque fois que possible dans le code.

JavaEditorTests et PropertiesEditorTests sont les types apparentés dans l'exemple suivant. La première image représente la hiérarchie de types avant la restructuration.

Hiérarchie avant l'extraction d'EditorTests

L'image suivante représente la hiérarchie de types après l'extraction d'EditorTests avec la restructuration Extraire la superclasse.

Hiérarchie après l'extraction d'EditorTests

Pour appeler cette restructuration, sélectionnez Restructure> Extraire la superclasse....

Assistant de nettoyage

Le Nettoyage peut être appelé pour un nombre indéterminé de fichiers source Java, de packages Java ou pour un projet Java entier. Il permet d'effectuer les opérations suivantes :

  • réparation simultanée de plusieurs problèmes,
  • utilisation d'un style de code préféré dans le code.

Voici quelques exemples de possibilités :

  • Forcer l'utilisation d'accolades pour tous les corps 'if', 'while' ou 'for'.
  • Qualifier tous les accès aux zones avec 'this'.
  • Utiliser 'final' chaque fois que possible.

Pour rendre le code Java 1.4 compatible avec la version 5.0, utilisez Nettoyage pour :

  • convertir toutes les boucles for en boucles for améliorées chaque fois que possible.
  • Marquer toutes les méthodes de substitution avec des annotations @Override.

Assistant de nettoyage

Sélectionnez un projet, un package ou un fichier et utilisez Source > Nettoyage... pour démarrer cet assistant.

Historique de restructuration

Le suivi de la plupart des restructurations fournies par JDT est désormais effectué dans l'historique de restructuration. L'infrastructure de restructuration enregistre des informations détaillées sur les restructurations effectuée dans votre espace de travail.

Pour consulter et éditer l'historique de restructuration, sélectionnez Restructurer > Historique...

Boîte de dialogue Historique de restructuration

Création et application de scripts de restructuration

Les restructurations effectuées sur votre espace de travail local peuvent désormais être exportées dans un script de restructuration et être revues dans un espace de travail arbitraire.

Ces scripts de restructuration peuvent être utilisés dans différents scénarios tels que la réparation automatique de modifications créant des ruptures d'API entre le couches logicielles ou la fourniture de correctifs de sémantique riche.

Pour créer un script de restructuration à partir de l'historique de restructuration, utilisez Restructurer > Création d'un script...

action Création d'un script

Pour appliquer le script de restructuration généré à un espace de travail arbitraire, utilisez Restructurer > Appliquer le script...

Un nouveau point d'extension permet aux éditeur de plug-in de fournir un support à la restructuration de script aux restructurations nouvelles ou existantes. Pour plus de détails, voir le point d'extension org.eclipse.ltk.core.refactoring.refactoringContributions.

Exportation de fichier JAR avec des restructurations

Lors de l'exportation d'un fichier JAR à partir de l'espace de travail, l'assistant d'exportation de fichier JAR propose une option permettant d'inclure les informations de restructuration dans le fichier JAR.

Utilisez Fichier > Exporter... puis sélectionnez Fichier JAR. Dans la première page de l'assistant d'exportation de fichier JAR, sélectionnez Exporter les restructurations des projets sélectionnés. Cliquez sur le lien pour sélectionner les restructurations à inclure.

sélection de restructuration pour l'exportation JAR

Les clients peuvent migrer une ancienne version du fichier JAR vers une nouvelle version à l'aide de la restructuration Restructurer > Migrer le fichier JAR.... Vous pouvez aussi utiliser Chemin de génération> Migrer le fichier JAR... si un fichier JAR est déjà sélectionné.

Action Migrer fichier JAR

Cette restructuration met à jour automatiquement tout le code dépendant de l'ancienne version du fichier JAR afin qu'il utilise la nouvelle version du fichier JAR.

Restructurations détectant les API

Plusieurs restructurations ont été étendues afin de prendre en charge la compatibilité API en conservant le membre original comme délégué du membre restructuré :

  • Renommer la méthode
  • Renommer le champ (pour les constantes seulement)
  • Déplacer la méthode
  • Introduire un paramètre
  • Changer la signature

Case à cocher de 'Conserver les méthodes originales en tant que délégué des méthodes modifiées'

La génération d'un membre délégué en vue de préserver la compatibilité des API peut être activée en sélectionnant Conserver les méthodes originales en tant que délégué des méthodes modifiées dans la boîte de dialogue de restructuration.

La restructuration Changement du nom du type met à jour les éléments ayant le même nom

La restructuration Changement du nom du type peut désormais renommer les variables et les méthodes en leur attribuant des noms similaires au type renommé. Cette fonction permet de synchroniser les noms de méthode et de variable avec les noms de type.

Interface utilisateur de mise à jour des déclarations similaires

Pour appeler cette restructuration, sélectionnez un type et utilisez Restructurer > Renommer...

La restructuration Renommer le package renomme les sous-packages

La restructuration Renommer le package permet maintenant de renommer les sous-packages à la demande.

Boîte de dialogue Renommer le package avec nouvelle case à cocher

Dans cet exemple, junit.samples.money est renommé junit.examples.money.

Pour appeler cette restructuration, sélectionnez un package et utilisez Restructurer > Renommer...

Filtrage de la prévisualisation de la restructuration

La page de prévisualisation de la restructuration prend désormais en charge le filtrage des modifications. Cette possibilité est très pratique lorsque la mise à jour des correspondances textuelles dans les commentaires et les chaînes est requise lors du changement de nom d'éléments Java.

Page de prévisualisation de la restructuration filtrée

La capture d'écran représente la boîte de dialogue de changement de nom dans laquelle le filtrage des correspondances textuelles est appliqué lors du changement de nom de la classe TestCase en TestCasee.

Les modifications concernant la visibilité des éléments Java peuvent désormais être filtrées.

Editeur Java

Assistant de contenu personnalisable

Les appels répétés à l'assistant de contenu (Ctrl+Espace sur la plupart des plateformes) passe maintenant par différentes catégories de propositions.

Vous pouvez attribuer des raccourcis clavier à vos catégories de propositions favorites et utilise la page de préférences Ouvre la page de préférences de l'assistant de contenu avancé Java > Editeur > Assistant de contenu > Avancé pour configurer les catégories qui s'affichent dans le menu en incrustation par défaut de l'assistant de contenu.

fenêtre en incrustation de l'assistant de contenu avec propositions Java ; des appels répétés affichent des modèles de propositions

Le nouveau point d'extension org.eclipse.jdt.ui.javaCompletionProposalComputer permet aux éditeurs de plug-in de fournir des catégories et des propositions d'exécution au processus d'assistant de contenu de l'éditeur Java.

Prise en charge de la casse ChatMot dans l'exécution de code

L'exécution de code prend désormais en charge les modèles de casse ChatMot. Par exemple, une exécution sur NPE proposera NullPointerException. Vous pouvez désactiver cette prise en charge à l'aide de la préférence permettant d'afficher les correspondances de la casse ChatMot) de la page de préférences Ouvre la page de préférences de l'assistant de contenu Java > Editeur > Assistant de contenu.

Editeur Java s'exécutant sur NPE

Menu rapide pour la délimitation de code

Le nouveau menu rapide Entourer de permet de délimiter une sélection de lignes par du code. Le menu est personnalisable à l'aide de modèles. Ces modèles détectent maintenant les variables qui doivent être extraites ou rendues définitives.

Transformation de la délimitation avec du code exécutable

Utilisez Source > Entourer de ou appuyez sur Alt+Maj+Z pour afficher directement le menu.

Vous pouvez ajouter vos modèles personnalisés dans la page de préférences Java > Editeur > Modèles. Le modèle nécessite seulement une variable ${line_selection}.

Nouveaux correctifs rapides

De nouveaux correctifs rapides ont été ajoutés, par exemple :

  • corriger les accès de type brut

    Proposition de correction d'accès brut

    Le correctif rapide collecte des informations à partir des utilisations dans le même fichier. Pour effectuer une analyse plus sophistiquée, utilisez la restructuration Déduction des arguments de type générique.

  • ajouter un attribut d'annotation manquant

    Correctif rapide pour un attribut d'annotation manquant

  • ajout d'un nouveau membre d'annotation

    Correctif rapide pour un nouveau membre d'annotation

Prise en charge de catégorie

Les catégories peuvent être définies dans les commentaires Javadoc pour les types, les méthodes et les zones à l'aide de la balise @category.

Code utilisant des catégories

Les catégories s'affichent dans les vues Structure et Membres et dans la Structure rapide. Le menu Vue permet de sélectionner les catégories visibles.

Structure affichant les catégories et les filtres de catégorie

Tous les membres peuvent être réduits

Lorsque la réduction est activée, les champs, les initialiseurs et leurs commentaires peuvent être réduits de la même façon que les méthodes.

Initialiseurs de champ réduits

De nouvelles commande de réduction de texte permettent de réduire tous les commentaires, tous les membres et de réinitialiser la structure de réduction. Ces commandes se trouvent dans le menu contextuel Réduction de l'éditeur Java dans la règle verticale.

Pris en charge de la règle et structure des fichiers Java en dehors de l'espace de travail

L'éditeur Java affiche désormais les règles verticales. De plus, la page Structure ainsi que la Structure rapide peuvent afficher la structure des fichiers Java externes et des fichiers Java des référentiels.

Prise en charge de la règle

Compilateur Java

Conformité à Java SE 6.0

La conformité à Java SE 6.0 est désormais entièrement prise en charge. En particulier, les attributs StackMapTable (voir JSR 202) sont désormais générés dans les fichiers .class avec une cible 1.6.

Définition de la conformité à Java 6.0

Analyse de référence null

Le compilateur Java peut désormais effectuer une analyse de référence null simple pour les variables locales.

Ce diagnostic optionnel peut être activé dans la page de préférences Ouvre la page de préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements à l'aide de la préférence Erreurs de programmation possibles> Référence null.

Editeur Java avec avertissement de référence null

L'analyse est assez classique et obéit à des règles d'affectation définies. Elle ne prend en compte que les cas présentant un élément suspect (par exemple si une vérification null est exécutée par la suite) au lieu de traiter tous les cas possibles.

Dans le mode de conformité à la 5.0, les avertissements de référence null peuvent être désactivés à l'aide de @SuppressWarnings("null").

Amélioration de la reprise en cas d'erreur de syntaxe

L'analyseur syntaxique Java interne est désormais plus résilient en cas d'erreurs de syntaxe. Dans Eclipse 3.1, une erreur de syntaxe empêchait l'affichage des erreurs suivantes. L'analyseur syntaxique peut maintenant reprendre à partir d'instructions contenant des erreurs et continuer à exécuter d'autres analyses.

Dans l'exemple suivant, la référence incorrecte à la méthode bar() est détectée malgré l'absence du point-virgule dans l'instruction précédente.

Editeur Java avec reprise sur erreurs de syntaxe

Ceci permet par exemple aux restructurations affectant un seul fichier de tolérer les erreurs de syntaxe. Il est ainsi possible de renommer ou d'extraire une variable locale au début d'une méthode dont la rédaction n'est pas terminée.

Extraction d'une variable locale dans une méthode incomplète

Considération des erreurs configurables comme des erreurs non bloquantes

L'option Considérer les erreurs configurables comme des erreurs bloquantes dans la page de préférences Ouvre la page de préférences Génération Java > Compilateur > Génération vérifie si une erreur configurable est bloquante. Cette option est activée par défaut.

S elle est désactivée, le code compilé peut alors être exécuté même s'il contient des erreurs.

Détection des balises $NON-NLS$ inutiles

Les balises $NON-NLS$ inutiles sont maintenant détectées. Un problème est signalé si un commentaire de ligne commence par //$NON-NLS-x$ et qu'il n'existe pas de chaîne correspondante sur cette même ligne.

La génération de rapport de problème peut être activée ou désactivée à l'aide de la même préférence que pour la détection de chaînes non externalisées. Vous pouvez la définir dans la page de préférences Ouvre la page de préférences Erreur/Avertissements Java > Compilateur > Erreur/Avertissements à l'aide des chaînes non externalisées Style du code > (balise $NON-NLS manquante/inutilisée)/.

Editeur Java avec balise NLS inutile

Pour supprimer les balises inutiles , utilisez le correctif rapide (Ctrl+1), ou Ctrl+1, Ctrl+Entrée pour supprimer toutes les balises inutile dans une unité de compilation.

Détection d'une utilisation de type brut

La syntaxe des types bruts est maintenant détectée. Un type brut est une référence à un type générique ne comportant pas d'argument de type (par exemple Liste au lieu de Liste<Elément>).

Ce diagnostic facultatif peut être activé indépendamment des opérations de type non contrôlé dans la page des préférences Ouvre la page des préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements à l'aide de la préférence Types génériques > Syntaxe d'un type brut.

Editeur Java avec syntaxe de type brut

Vous pouvez désactiver cet avertissement en ajoutant @SuppressWarnings("unchecked").

Un correctif rapide a également été ajouté pour faciliter la résolution du problème de la syntaxe de type brut.

Détection des affectations des paramètres de méthode

L'affectation à des paramètres de méthode est une pratique déconseillée.

Pour détecter et signaler ces affectations, ouvrez la page des préférences Ouvre la page de préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements et activez le préférence Code du style > Affectation de paramètres.

Editeur Java avec avertissement d'affectation de paramètres

Détection des intitulés inutilisés

Le compilateur Java détecte désormais les intitulés d'instruction inutilisés.

Ce diagnostic optionnel peut être activé dans la page de préférences Ouvre la page de préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements à l'aide de la préférence Code inutile> Intitulé break/continue inutilisé.

Editeur Java avec syntaxe de type brut

Détection d'un fall through d'une instruction switch case

Le compilateur Java peut désormais détecter si un cas peut être indiqué en effectuant un fall through au cas précédent. Seuls les cas vides sont autorisés.

Ce diagnostic optionnel peut être activé dans la page de préférences Ouvre la page de préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements à l'aide de la préférence Erreurs de programmation possibles> Switch case fall through.

Editeur Java avec avertissement de fall through

Un correctif rapide permettant d'ajouter une instruction d'interruption break au cas précédent a été implémentée.

Amélioration des performances des fichiers JAR de grande taille

La limite de taille de la cache du modèle Java interne est désormais une fonction de la taille de segment maximale (argument -Xmx VM dans la plupart des JVM) qui est attribué à la machine virtuelle Java exécutant l'environnement Eclipse IDE.

L'augmentation de la taille de segment améliore nettement les performances lorsque des fichiers .jar de grande taille se trouvent dans le chemin de classe de génération.

Recréation de fichiers .class modifiés

Le générateur Java peut désormais recréer des fichiers .class modifiés ou supprimé dans le dossier de sortie à l'aide du source original.

Ceci est géré par la page de préférences Ouvre la page de préférences Erreurs/Avertissements Java > Compilateur > Génération à l'aide de la préférence Dossier de sortie > Régénération de fichiers de classe modifiés par d'autres.

Vue Javadoc et info-bulles du Javadoc joint

La vue Javadoc et les info-bulles Javadoc extraient désormais les informations du Javadoc joint pour les bibliothèques dont le source n'est pas joint.

Outils JUnit

Prise en charge de JUnit 4

la prise en charge de JUnit a été mise à jour et permet maintenant d'exécuter et d'écrire des tests JUnit 4. Consultez le site www.junit.org pour plus d'informations sur JUnit 4.

  • Utilisez l'assistant Nouveau scénario de test JUnit pour générer une classe de test JUnit 4 :
    Prise en charge de JUnit 4 dans l'assistant Nouveau scénario de test JUnit
  • Utilisez la bibliothèque JUnit fournie pour l'ajouter au chemin de génération.
    Ajout de la bibliothèque JUnit 4 avec un correctif rapide
  • Lancer les tests JUnit 4 comme d'habitude avec Exécuter en tant que JUnit.
  • Ignorer les tests en les balisant avec @Ignore.

Historique de la vue JUnit

La vue JUnit peut maintenant gérer plusieurs exécutions de tests simultanées. Vous pouvez alterner entre les exécutions de test actives et récentes à l'aide du nouvel historique. La réexécution des tests peut être relancée à partir de l'historique sans interrompre les tests déjà en cours d'exécution.

Historique JUnit

Ceci fonctionne avec JUnit 3 et JUnit 4.

Débogueur Java
Environnements d'exécution

Un environnement d'exécution décrit les fonctions d'une phase d'exécution, par exemple J2SE-1.4. Vous pouvez définir des JRE utilisés pour l'exécution, le débogage et la génération en référençant un environnement d'exécution. La nouvelle page de préférences Ouvre la page de préférences Environnements d'exécution Java > JRE installés > Environnements d'exécution affiche les JRE installés dans votre espace de travail et qui est compatible avec chaque environnement d'exécution. Les JRE répondant aux besoins exacts d'un environnement d'exécution s'affichent en gras et les JRE excédant ces besoins s'affichent dans la police par défaut. Lorsque plusieurs JRE son compatibles avec un environnement d'exécution, vous pouvez sélectionner un JRE par défaut à utiliser pour cet environnement en cochant sa case.

Page de préférences Environnements d'exécution

Un chemin de génération ou une configuration de lancement référençant un environnement d'exécution est plus portable qu'un chemin ou une configuration référençant un JRE explicite, car un environnement d'exécution JRE peut être résolu indépendamment de son nom. Utilisez l'onglet JRE ou l'assistant d'Edition d'une bibliothèque pour préciser un environnement d'exécution à utiliser pour l'exécution et la génération.

Onglet JRE dans la boîte de dialogue de la configuration de lancement

Variable de lancement des propriétés système

Une nouvelle variable de lancement permet de définir dynamiquement les propriétés système en tant que programme Java et arguments VM à partir de la phase d'exécution Eclipse. La variable accepte un seul argument qui est le nom de la propriété système à résoudre lors du lancement.

Par exemple, la propriété système java.home doit être référencée par ${system_property:java.home}.

Onglet Arguments dans la boîte de dialogue de configuration de lancement

Prise en charge de l'évaluation des tableaux

L'évaluation et l'assistant de contenu sont désormais pris en charge pour les tableaux Java. Utilisez this pour désigner le tableau choisi.

Aide à la saisie de code dans la vue variables

Groupes d'unités d'exécution Java

Vous pouvez maintenant afficher des groupes d'unités d'exécution dans la vue Débogage en alternant l'option Affiche les groupe d'unités d'exécution dans le menu Afficher.

Activation des groupes d'unités d'exécution dans la vue Débogage

Entrées exportées d'un chemin d'accès aux classes d'exécution

Un chemin d'accès aux classes d'exécution peut être configuré pour comprendre uniquement les entrées exportées du chemin de génération. Par défaut, il comprend toutes les entrées (exportées et non exportées).

Dans l'onglet Chemin d'accès aux classes, sélectionnez l'entrée par défaut et cliquez sur le bouton Edition... pour configurer l'option.

Onglet Chemin d'accès aux classes dans la boîte de dialogue de la configuration de lancement

Edition du chemin de classes d'exécution

Comparaison des options Interrompre l'unité d'exécution et Interrompre VM

Une nouvelle option ajoutée à la page de préférences Ouvre la page de préférences Erreurs/Avertissements Java > Débogage permet de contrôler si les nouveaux points d'interruption interrompent une seule unité d'exécution ou toute la VM.

Page de préférences Débogage

Divers

Indicateur de type Java

Active l'Indicateur de type Java dans la page de préférence Ouvre la page de préférences Erreurs/Avertissements Général > Apparence > Décorations d'intitulés pour savoir quel est le premier type dans une unité de compilation ou d'un fichier de classe. Une décoration s'affiche pour les interfaces, les annotations et les énumérations tandis qu'une classe ordinaire ne comporte pas de décoration.

Décorateur d'intitulé d'un indicateur de type Java

Recherche des chaînes externalisées qui ne fonctionnent pas

Une nouvelle action permet de rechercher les chaînes externalisées qui ne fonctionnent pas. La recherche signale les clés manquantes, inutilisées ou en double.

Action de recherche des chaînes externalisées qui ne fonctionnent pas

Pour commencer la recherche, sélectionnez un fichier de propriétés, un package ou un projet complet et choisissez Source > Rechercher les chaînes externalisées qui ne fonctionnent pas

Meilleure prise en charge du mécanisme d'externalisation de chaîne d'Eclipse

Le mécanisme d'externalisation de chaîne d'Eclipse offre le même type de prise en charge que l'externalisation de chaîne classique. La valeur d'externalisation associée est affichée dans une info-bulle lorsque vous placez la souris sur la clé d'une chaîne externalisée dans l'éditeur Java.

Info-bulle multilingue

Faites Ctrl+clic sur la clé pour naviguer directement jusqu'à l'entrée dans le fichier de propriétés correspondant. Dans l'éditeur du fichier de propriétés, utilisez Ctrl+clic pour trouver l'emplacement de la clé dans le code.

Création d'un type à partir d'un fragment d'exemple

Vous pouvez coller un fragment de code contenant un type Java directement dans un package ou un dossier source pour créer une nouvelle unité de compilation. Par exemple, sélectionnez et copiez ce code source :
package pack;
public class HelloWorld {
    public static void main (String [] args) {
        System.out.println("Hello World");
    }
}
puis sélectionnez un dossier source dans la vue Package à l'aide de Ctrl+V (Edition > Coller). Ceci crée automatiquement un nouveau 'pack' de package et le fichier 'HelloWorld.java' avec le contenu copié.

Génération des méthodes hashCode() et equals()

Une nouvelle action permet de générer les méthodes hashCode() et equals(). Vous pouvez sélectionner les champs sur lesquels baser l'implémentation.

Assistant de génération des méthodes hash et equals

Pour appeler cette action, sélectionnez un type et utilisez Source > Générer hashCode() et equals()...

Module de formatage du code de ligne de commande

Il est désormais possible de formater du code source sans démarrer l'identificateur unique Eclipse, à l'aide de la nouveau module de formatage sans interface. Il fonctionne comme une application Eclipse standard.

La commande suivante formate les fichiers source dans le dossier src avec les options indiquées dans le fichier config.prefs :

eclipse -application org.eclipse.jdt.core.JavaCodeFormatter -config d:/config.prefs c:/src

Voir Utilisation du module de formatage pour plus d'informations.

Prise en charge des extensions similaires à Java

Les fichiers ayant une extension de fichier autre que .java et contenant du code Java pur sont désormais pris en charge. Vous pouvez ajouter une extension similaire à Java dans la page de préférences Ouvre la page de préférences Type de contenu Général > Types de contenu Texte > Fichier source Java).

Vue Package avec 'Y.abc' comme unité de compilation