org.nuiton.i18n.plugin.bundle
Class TapestryBundleMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.nuiton.plugin.AbstractPlugin
          extended by org.nuiton.i18n.plugin.AbstractI18nMojo
              extended by org.nuiton.i18n.plugin.bundle.AbstractI18nBundleMojo
                  extended by org.nuiton.i18n.plugin.bundle.TapestryBundleMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.nuiton.plugin.Plugin

public class TapestryBundleMojo
extends AbstractI18nBundleMojo

Créer un bundle pour une application finale.

Cela génère un merge de tous les fichiers i18n utilisés en un seul.

On utilise la dépendance sur les artifacts pour connaitre l'ordre le chargement des bundles.

Si dans un bundle childs, la valeur de la clef est vide, on conserve alors celui du parent,

Ainsi on obtient un bundle dont toutes les clefs sont traduites.

Le but aussi d'utiliser un unique bundle est de gagner du temps au runtime car la recherche des bundles devient trop couteuse en temps lorsque l'on a de nombreuses dépendances (au dessus de 100 deps cela peut prendre plusieurs secondes, ce qui 'est pas acceptable).

On a ajoute un second mode d'initialisation dans la clesse I18n pour n'utiliser qu'un seul bundle et courcircuiter le chargement couteux...

Since:
1.2
Author:
tchemit
Is defined to be executed in:
goal:
collect-i18n-artifacts
Is defined by the goal name:
tapestry-bundle
Is bound to the specified phase of the standard build lifecycle:
generate-resources
Requires the dependencies in this specified scope:
runtime
Requires a Maven project to run:
true

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuiton.plugin.Plugin
org.nuiton.plugin.Plugin.InitState, org.nuiton.plugin.Plugin.Packaging
 
Field Summary
protected  File bundleOutputDir
          Repertoire ou generer les bundles.
protected  String bundleOutputName
          Nom du bundle a generer.
protected  boolean checkBundle
          Un drapeau pour vérifier que les bundles ne contiennent pas d'entrées vides.
protected  boolean showEmpty
          Un drapeau pour afficher les entrées vides.
 
Fields inherited from class org.nuiton.i18n.plugin.bundle.AbstractI18nBundleMojo
collectOutputDir, collectOutputName
 
Fields inherited from class org.nuiton.i18n.plugin.AbstractI18nMojo
artifactId, bundles, encoding, genSrc, locales, out, project, silent, src, strictMode, verbose
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
TapestryBundleMojo()
           
 
Method Summary
protected  void doAction()
           
protected  URL[] getCollectI18nResources(Locale locale)
          Pour obtenir les urls des fichiers i18n d'un projet (avec recherche dans ses dépendances).
 File getTapestryI18nFile(File root, String artifactId, Locale locale, boolean create)
           
 void init()
           
 
Methods inherited from class org.nuiton.i18n.plugin.bundle.AbstractI18nBundleMojo
getCollectOutputFile, getLinesAsURL
 
Methods inherited from class org.nuiton.i18n.plugin.AbstractI18nMojo
addGetter, backupFile, checkBundle, checkPackaging, getArtifactId, getBackupFile, getEncoding, getGetterFile, getI18nFile, getProject, isSilent, isStrictMode, isVerbose, needGeneration, setEncoding, setProject, setVerbose
 
Methods inherited from class org.nuiton.plugin.AbstractPlugin
acceptPackaging, addCompileSourceRoots, addDirectoryToUrlsList, addResourceDir, addResourceDir, addTestCompileSourceRoots, addTestResourceDir, addTestResourceDir, addUrlToUrlsList, afterExecute, checkResource, checkRunOnceDone, checkSkip, copyFile, createDirectoryIfNecessary, createNewFile, deleteFile, execute, getFileFromBasedir, getFilesToTreate, getFilesToTreateForRoots, getTemplate, initClassLoader, isExecutionRoot, isFileNewerThanPomFile, rejectPackaging, removeCompileSourceRoots, removeTestCompileSourceRoots, renameFile, writeFile
 
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.maven.plugin.Mojo
getLog, setLog
 

Field Detail

bundleOutputDir

protected File bundleOutputDir
Repertoire ou generer les bundles.

Since:
1.0.0
Is defined by:
expression:
${i18n.bundleOutputDir}
default-value:
${basedir}/src/main/webapp/WEB-INF
Is required.

bundleOutputName

protected String bundleOutputName
Nom du bundle a generer.

Since:
1.0.2
Is defined by:
expression:
${i18n.bundleOutputName}
default-value:
app
Is required.

checkBundle

protected boolean checkBundle
Un drapeau pour vérifier que les bundles ne contiennent pas d'entrées vides.

Since:
1.0.0
Is defined by:
expression:
${i18n.checkBundle}
default-value:
true
Is required.

showEmpty

protected boolean showEmpty
Un drapeau pour afficher les entrées vides. (nécessite checkBundle activé).

Since:
1.0.0
Is defined by:
expression:
${i18n.showEmpty}
default-value:
false
Is required.
Constructor Detail

TapestryBundleMojo

public TapestryBundleMojo()
Method Detail

init

public void init()
          throws Exception
Overrides:
init in class AbstractI18nMojo
Throws:
Exception

doAction

protected void doAction()
                 throws Exception
Specified by:
doAction in class org.nuiton.plugin.AbstractPlugin
Throws:
Exception

getTapestryI18nFile

public File getTapestryI18nFile(File root,
                                String artifactId,
                                Locale locale,
                                boolean create)
                         throws IOException
Parameters:
root - le repertoire ou sont stockes les fichiers i18n
artifactId - le nom de l'artifact
locale - le nom du bundle
create - true pour creer le fichier si non present
Returns:
le fichier i18n
Throws:
IOException - si probleme lors de la creation du fichier

getCollectI18nResources

protected URL[] getCollectI18nResources(Locale locale)
                                 throws IOException
Description copied from class: AbstractI18nBundleMojo
Pour obtenir les urls des fichiers i18n d'un projet (avec recherche dans ses dépendances).

Note: L'ordre des urls reflète l'ordre des dépendances.

Specified by:
getCollectI18nResources in class AbstractI18nBundleMojo
Parameters:
locale - la locale a traiter
Returns:
les urls des bundles i18n detectees pour le projet.
Throws:
IOException


Copyright © 2007-2010 CodeLutin. All Rights Reserved.