org.nuiton.license.plugin
Class UpdateHeaderMojo

java.lang.Object
  extended by org.apache.maven.plugin.AbstractMojo
      extended by org.nuiton.plugin.AbstractPlugin
          extended by org.nuiton.license.plugin.UpdateHeaderMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.nuiton.plugin.Plugin

public class UpdateHeaderMojo
extends org.nuiton.plugin.AbstractPlugin

The goal to update (or add) the licence header on some files.

Since:
1.0.1
Author:
chemit
Is defined by the goal name:
update-header
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  Map<String,HeaderGenerator> _generators
          All available generators
protected  String boxedLicenseHeaderContent
          le header complet (avec les balises de commentaires)
protected  List<String> compileSourceRoots
          Compile source directory roots to inspect.
protected  boolean dryRun
          A flag to test plugin but modify no file.
protected  String encoding
          Encoding a utiliser pour lire et ecrire les fichiers.
protected  String excludes
          La liste des patterns de fichiers à exclure (séparés par des virgules).
protected  Map<File,String[]> filesToTreate
          la liste des chemin relatifs des sources java a traiter pour chaque repertoire contenant des sources
protected  String generatorName
          Le type de générateur a utiliser pour encapsuler le header.
protected  String inceptionYear
          l'annee de creation du module (sera place dans le header)
protected  String includes
          La liste des patterns de fichiers à inclure (séparés par des virgules).
protected  boolean keepBackup
          Un flag pour conserver un backup des fichiers modifies.
protected  String licenseHeaderContent
          le header a ajouter dans chaque fichier source java
protected  String licenseName
          Le type de license a appliquer.
protected  String licenseResolver
          Un resolver externe
protected  String organizationName
          le nom de l'organisation (sera place dans le header)
protected  org.apache.maven.project.MavenProject project
          Dependance du projet.
protected  String projectName
          le nom du projet (sera place dans le header)
protected  boolean skipUpdateHeader
          A flag to skip the goal.
protected  String template
          La template (velocity) a utiliser pour construire le header.
protected  Map<String,String> templateParameters
          Des paramètres supplémentaires à utiliser dans la template du header.
protected  List<String> testSourceRoots
          Test source directory roots to inspect.
protected  long timestamp
          le timestamp utilise pour la generation
protected  org.codehaus.plexus.velocity.VelocityComponent velocity
          Velocity Component.
protected  boolean verbose
          Un flag pour activer le mode verbeux.
 
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
 
Constructor Summary
UpdateHeaderMojo()
           
 
Method Summary
 boolean checkPackaging()
           
protected  boolean checkSkip()
           
protected  String computeHeader(License license, HeaderGenerator generator)
          Construction du header a utiliser.
protected  void doAction()
           
 org.apache.maven.project.MavenProject getProject()
           
 void init()
           
 boolean isVerbose()
           
 void setCompileSourceRoots(List<String> compileSourceRoots)
           
 void setCompileSourceRoots(String root)
           
 void setProject(org.apache.maven.project.MavenProject project)
           
 void setTestSourceRoots(List<String> testSourceRoots)
           
 void setTestSourceRoots(String root)
           
 void setVerbose(boolean verbose)
           
 
Methods inherited from class org.nuiton.plugin.AbstractPlugin
acceptPackaging, addCompileSourceRoots, addDirectoryToUrlsList, addResourceDir, addResourceDir, addTestCompileSourceRoots, addTestResourceDir, addTestResourceDir, addUrlToUrlsList, afterExecute, backupFile, checkResource, checkRunOnceDone, copyFile, createDirectoryIfNecessary, createNewFile, deleteFile, execute, getBackupFile, 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

project

protected org.apache.maven.project.MavenProject project
Dependance du projet.

Since:
1.0.0
Is defined by:
default-value:
${project}
Is required.

encoding

protected String encoding
Encoding a utiliser pour lire et ecrire les fichiers.

Since:
1.0.0
Is defined by:
expression:
${license.encoding}
default-value:
${project.build.sourceEncoding}
Is required.

inceptionYear

protected String inceptionYear
l'annee de creation du module (sera place dans le header)

Since:
1.0.0
Is defined by:
expression:
${license.inceptionYear}
default-value:
${project.inceptionYear}
Is required.

organizationName

protected String organizationName
le nom de l'organisation (sera place dans le header)

Since:
1.0.0
Is defined by:
expression:
${license.organizationName}
default-value:
${project.organization.name}
Is required.

projectName

protected String projectName
le nom du projet (sera place dans le header)

Since:
1.0.0
Is defined by:
expression:
${license.projectName}
default-value:
${project.name}
Is required.

licenseName

protected String licenseName
Le type de license a appliquer.

Since:
1.0.0
Is defined by:
expression:
${license.licenseName}
Is required.

generatorName

protected String generatorName
Le type de générateur a utiliser pour encapsuler le header.

Par défaut, on veut utiliser le plugin sur des fichiers sources java.

Since:
1.0.1
Is defined by:
expression:
${license.generatorName}
default-value:
license-java
Is required.

includes

protected String includes
La liste des patterns de fichiers à inclure (séparés par des virgules).

Exemple : **\/*.java,**\/*.properties

On recherchera alors les fichiers respectant l'un des patterns dans tous les répertoires de sources et de tests.

Par défaut, on veut utiliser le plugin sur des fichiers sources java.

Since:
1.0.1
Is defined by:
expression:
${license.includes}
default-value:
**\/*.java
Is required.

excludes

protected String excludes
La liste des patterns de fichiers à exclure (séparés par des virgules).

Exemple : **\/*.java,**\/*.properties

On recherchera alors les fichiers respectant l'un des patterns dans tous les répertoires de sources et de tests.

Par défaut, on n'exclue rien.

Since:
1.0.1
Is defined by:
expression:
${license.excludes}

compileSourceRoots

protected List<String> compileSourceRoots
Compile source directory roots to inspect. Can use it a a comma separated string :
<compileSourceRoots>src/site,src.target/extra-site</compileSourceRoots> 
or a list :
   <compileSourceRoots>
     <root>src/site</root> 
<root>src/target/extra-site</root> </compileSourceRoots> Note: If not set, will use the build compile roots.

Since:
1.0.0
Is defined by:
expression:
${license.compileSourceRoots}
default-value:
${project.compileSourceRoots}
Is required.

testSourceRoots

protected List<String> testSourceRoots
Test source directory roots to inspect. Can use it a a comma separated string :
<testSourceRoots>src/test1,src/test2</testSourceRoots> 
or a list :
   <testSourceRoots>
     <root>src/site</root> 
<root>src/target/extra-site</root> </testSourceRoots> Note: If not set, will use the build test roots.

Since:
1.0.0
Is defined by:
expression:
${license.testSourceRoots}
default-value:
${project.testCompileSourceRoots}
Is required.

licenseResolver

protected String licenseResolver
Un resolver externe

Since:
1.0.0
Is defined by:
expression:
${license.licenseResolver}

template

protected String template
La template (velocity) a utiliser pour construire le header.

Cette template doit être dans le class-path ou être un fichier existant

Since:
1.0.1
Is defined by:
expression:
${license.template}
default-value:
/license/defaultHeader.vm

templateParameters

protected Map<String,String> templateParameters
Des paramètres supplémentaires à utiliser dans la template du header.

Since:
1.0.1
Is defined by:

keepBackup

protected boolean keepBackup
Un flag pour conserver un backup des fichiers modifies.

Since:
1.0.0
Is defined by:
expression:
${license.keepBackup}
default-value:
false

verbose

protected boolean verbose
Un flag pour activer le mode verbeux.

Since:
1.0.0
Is defined by:
expression:
${license.verbose}
default-value:
${maven.verbose}

skipUpdateHeader

protected boolean skipUpdateHeader
A flag to skip the goal.

Since:
1.0.3
Is defined by:
expression:
${skipUpdateHeader}
default-value:
false

dryRun

protected boolean dryRun
A flag to test plugin but modify no file.

Since:
1.0.3
Is defined by:
expression:
${dryRun}
default-value:
false

velocity

protected org.codehaus.plexus.velocity.VelocityComponent velocity
Velocity Component.

Since:
2.0.0
Is a Plexus component defined by:
roleHint:
maven-license-plugin

_generators

protected Map<String,HeaderGenerator> _generators
All available generators

Is a Plexus component defined by:
role:
org.nuiton.license.plugin.header.generator.HeaderGenerator

licenseHeaderContent

protected String licenseHeaderContent
le header a ajouter dans chaque fichier source java


boxedLicenseHeaderContent

protected String boxedLicenseHeaderContent
le header complet (avec les balises de commentaires)


filesToTreate

protected Map<File,String[]> filesToTreate
la liste des chemin relatifs des sources java a traiter pour chaque repertoire contenant des sources


timestamp

protected long timestamp
le timestamp utilise pour la generation

Constructor Detail

UpdateHeaderMojo

public UpdateHeaderMojo()
Method Detail

isVerbose

public boolean isVerbose()

setVerbose

public void setVerbose(boolean verbose)

getProject

public org.apache.maven.project.MavenProject getProject()

setProject

public void setProject(org.apache.maven.project.MavenProject project)

checkPackaging

public boolean checkPackaging()
Overrides:
checkPackaging in class org.nuiton.plugin.AbstractPlugin

setCompileSourceRoots

public void setCompileSourceRoots(String root)

setCompileSourceRoots

public void setCompileSourceRoots(List<String> compileSourceRoots)

setTestSourceRoots

public void setTestSourceRoots(String root)

setTestSourceRoots

public void setTestSourceRoots(List<String> testSourceRoots)

checkSkip

protected boolean checkSkip()
Overrides:
checkSkip in class org.nuiton.plugin.AbstractPlugin

init

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

doAction

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

computeHeader

protected String computeHeader(License license,
                               HeaderGenerator generator)
                        throws Exception
Construction du header a utiliser.

Le header est généré à partir de la template velocity donnée et de la license donnée.

Parameters:
license - the license to use to compute header
generator - the header generator used to compute header
Returns:
le header construit
Throws:
Exception - pour toute erreur pendant la construction du header


Copyright © 2008-2010 CodeLutin. All Rights Reserved.