Nuiton processor
2009-08-22

Présentation

Cette librairie permet la création de filtre sur les fichiers sources. Des tags de debut et de fin sont recherchés et le filtre permet de traiter la chaïne comprise dans ces tags pour qu'elle soit écrite dans le fichier cible.

Filtres existants

NoActionFilter

:classe: org.nuiton.processor.filters.NoActionFilter

Ce filtre ne fait rien

ActiveLogsCodeFilter

:classe: org.nuiton.processor.filters.ActiveLogsCodeFilter

Détecte les tags

  /*# et #*/

et les supprimes, le contenu entre ces deux tags est placé dans un block try.

Cette règle est surtout utile pour des commentaires de debug ou des tests que l'on veut pouvoir activé ou non.

RemoveLogsCodeFilter

:classe: org.nuiton.processor.filters.RemoveLogsCodeFilter

Détecte les tags

  /*# et #*/

et supprime tout ce qui est contenu a l'intérieur.

OptimisationFilter

:classe: org.nuiton.processor.filters.OptimisationFilter

Détecte les tags

  /*% et %*/

tout ce qui n'est pas a l'exterieur de ce tag est supprimé et ce qui est dans le tag est conservé tel quel.

L'intéret de ce filtre est de permettre la créer des fichiers XML qui permettra la création de classe d'optimisation par la suite. Le XML décrivant les méthodes et permettant de faire une classe fille a la classe qui contient les tags.

:inputFileName: (.*?).java
:outputFileName: $1.optxml

i18nFilter

:classe: org.nuiton.processor.filters.i18nFilter

Détecte les tags

  I18n._(" et ")

tout ce qui n'est pas a l'exterieur de ce tag est supprimé et ce qui est dans le tag est conservé tel quel et ce voit ajouter un signe *=* à la fin.

L'intéret de ce filtre est de pouvoir extraire les chaînes de texte à traduire des fichiers sources. Les fichiers résultants sont de la forme des fichiers de propriétés Java.

:inputFileName: (.*?).java
:outputFileName: $1.i18n

licenseFilter

:classe: org.nuiton.processor.filters.LicenseFilter

Détecte les tags

  /*##% et ##%*/

tout ce qui n'est pas a l'exterieur de ce tag est conservé et ce qui est dans le tag est replacé par la license donnée.

L'intéret de ce filtre est de pouvoir changer facilement la licence d'un code source java.

GeneratorTemplatesFilter

:classe: org.nuiton.processor.filters.GeneratorTemplatesFilter

Détecte les tags

  /*{ et }*/

le contenu est alors lui même parsé avec le filtre GeneratorTemplatesFilterIn. Le résultat global est placé dans un::

  output.write("...<le contenu>...");

GeneratorTemplatesFilterIn

:classe: org.nuiton.processor.filters.GeneratorTemplatesFilterIn

Détecte les tags

  <% et %>

dans le texte externe aux tags les guillemets sont coté ainsi que les retours chariots de façon à ce que le texte puisse aller dans une chaîne de caractères Java. Si le texte à l'intérieur des tags commence par un signe **=**, alors il est remplacé par::

  "+ ...<contenu du tag sans le =>... +"

Sinon il est remplacé par::

  ");
  ...<contenu du tag>...
  output.write("

Règle ant

Voici un exemple d'utilisation de la règle ant.

  <processor filters="org.nuiton.processor.filters.GeneratorTemplatesFilter,\
             org.nuiton.processor.filters.GeneratorTemplatesFilter"
             srcdir="${srcdir}"
             destdir="${gendir}"
             includes="**/*.java"
             fileInPattern="(.*?).javap"
             fileOutPattern="$1.java"
  />

Dans cette exemple, deux filtres seront appliqué, les fichiers qui seront processés sont tous les fichiers java du répertoire $srcdir et les fichiers résultants se retrouveront dans le répertoire $gendir et leur extension aura été modifié de *.javap* en *.java*

Plugin maven

Un plugin maven est disponnible à l'adresse suivante maven-processor-plugin . Il permet l'utilisation depuis maven de NuitonProcessor.