La JSR 250 définissant les annotations communes vient de publier un ealy draft. La standardisation de ces annotations est une bonne opportunité de ne plus lier son code métier aux frameworks.
Depuis la sortie de Java 1.5 en septembre dernier, la langage java permet d’ajouter des annotations dans la code source et de supporter ainsi nativement le développement orienté attributs[Pour comprendre ce que l’on peut faire avec les annotations : [ ]], que supporte .Net depuis le début.
Ces annotations permettent de rajouter des méta données aux classes, aux champs ou aux méthodes. Par exemple, on peut ainsi spécifier qu’un champ est obligatoire dans un formulaire, qu’un objet est persistant en base de données ou quel rôle est nécessaire pour exécuter une fonction. Pour ce dernier exemple, voici le code correspondant dans son code métier suivant la spécification de la JSR 250.
@RolesAllowed(“Administrator”)
public void setNewRate(int rate) {}
XDoclet permettait jusqu’à présent de palier le manque de java 1.4.
Une des limites de XDoclet est d’utiliser des méta données spécifiques aux différents frameworks créant ainsi des dépendances (faibles) entre le code métier et les frameworks.
L’idéal serait d’avoir des annotations standardisées pour pouvoir définir des comportements dans son code métier utilisables par différentes implémentations de frameworks.
La JSR 250 a pour rôle de définir des annotations communes pour atteindre cet idéal. On retrouve notament dans le early draft qu’ils viennent de publier des annotations pour :
– marquer le code généré.
– référencer les ressources et les dépendances.
– définir les règles de sécurité comme par exemple les types d’utilisateur pouvant appeler une méthode
Vu le succès qu’a eu XDoclet, on peut s’attendre à voir se développer les annotations.