Class GenerateMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.nuiton.plugin.AbstractPlugin
org.nuiton.eugene.plugin.GenerateMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.nuiton.eugene.writer.ChainedFileWriterConfiguration, org.nuiton.plugin.Plugin, org.nuiton.plugin.PluginWithEncoding
@Mojo(name="generate",
requiresDependencyResolution=COMPILE)
public class GenerateMojo
extends org.nuiton.plugin.AbstractPlugin
implements org.nuiton.eugene.writer.ChainedFileWriterConfiguration, org.nuiton.plugin.PluginWithEncoding
Eugene generator plugin (a.k.a generate mojo)
Fill inputs and mojo will chained needed writer.
- Since:
- 2.5
- Author:
- Tony Chemit - chemit@codelutin.com
-
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
FieldsModifier and TypeFieldDescriptionAll available models (obtain by plexus, keys are plexus roles, values are a instance of corresponding model).protected StringNom par défaut du paquetage généré (model input specific).protected booleanNe génère rien, analyse juste la configuration.protected StringEncoding to be used for generation of files.protected org.nuiton.eugene.writer.ChainedWriterEngineThe engine to computeChainedFileWriterfrom inputs entries.protected String[]Templates à ne pas utiliser lors de la transformations des models (model input sepcific).protected FileWhere to copy extracted files (when using class-path data).protected StringList of package to extract from xmi to models.protected booleanA flag to fail if model properties is not safe (means some tagValues or stereotypes are not correct).protected ClassLoaderfixed classloaderprotected StringNom du paquetage pour les fichiers générés (xmi input sepcific).protected StringList of packages to generate (comma separated).protected String[]Inputs files to used to generate the required model files.protected FileTo use a new object model extension file.protected org.nuiton.eugene.ModelHelperAll available writers introspects via plexus.All available templates introspects via plexus.protected StringThe type of model to be used.protected FileWhere to generate files.protected booleanEcrase les fichiers générés.protected org.apache.maven.project.MavenProjectMaven project.Properties to pass to writer.protected StringNom du resolver a utiliser pour les transformations xmi vers model (xmi input sepcific).protected org.apache.maven.settings.SettingsLe settings (pour obtenir le mode offline).protected StringList of input (protocol) not to treate separated by comma.protected List<org.nuiton.eugene.Template<org.nuiton.eugene.models.Model>> protected StringTemplates à utiliser, séparés par des virgules pour les transformations depuis les models (model input sepcific).protected booleanA flag to mark the mojo to be used in a test phase.protected booleanPour activer le mode verbeux.All available writers introspects via plexus.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidapplyTemplates(org.nuiton.eugene.models.Model model, Long lastModifiedSource, File outputDirectory, List<org.nuiton.eugene.Template<org.nuiton.eugene.models.Model>> templateList, org.nuiton.eugene.writer.WriterReport writerReport) protected booleanprotected voiddoAction()protected voidfixCompileSourceRoots(File destDirGen) permet d'ajout le répertoire de génération des fichiers java dans les répertoires de compilation du projet Maven.protected StringPrepare le classLoader a utiliser dans le generateur.org.nuiton.eugene.ModelHelperorg.apache.maven.project.MavenProjectprotected voidinit()protected List<org.nuiton.eugene.Template<org.nuiton.eugene.models.Model>> booleanbooleanbooleanbooleanprotected org.nuiton.eugene.writer.WriterReportprotected StringreportCopiedResources(org.nuiton.eugene.writer.WriterReport writerReport) protected StringreportGeneratedFiles(org.nuiton.eugene.writer.WriterReport writerReport, long t0) voidsetEncoding(String encoding) voidAdd a single input to theinputsproperty.voidsetProject(org.apache.maven.project.MavenProject project) voidsetVerbose(boolean verbose) Methods inherited from class org.nuiton.plugin.AbstractPlugin
acceptPackaging, addCompileSourceRoots, addDirectoryToUrlsList, addResourceDir, addTestCompileSourceRoots, addTestResourceDir, addUrlToUrlsList, afterExecute, backupFile, checkEncoding, checkPackaging, checkResource, checkRunOnceDone, copyFile, createDirectoryIfNecessary, createNewFile, deleteFile, execute, getBackupFile, getFileFromBasedir, getFilesToTreate, getFilesToTreateForRoots, getRootProject, getTemplate, hasClassPath, initClassLoader, isExecutionRoot, isFileNewerThanPomFile, needInvoke, needInvoke, rejectPackaging, removeCompileSourceRoots, removeTestCompileSourceRoots, renameFile, writeFileMethods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContextMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.maven.plugin.Mojo
execute, getLog, setLog
-
Field Details
-
inputs
Inputs files to used to generate the required model files. An include has the following pattern :writer:
when you want to use a specific writer with his default io values. Can also write :[writer:]directory:includes
whereincludesis the pattern to find files from the directory given and must be terminated by the extension of files. Specifying thewritercan be usefull when you want to use a writer for an unknown extension by any writer. Example :<inputs> <input>zargo:</input> <input>src/main/xmi2:**\/*.zargo</input> <input>zargo:src/main/xmi:**\/*.zargo2</input> </inputs>Note: If your using a single input, you can just write :<inputs>zargo</inputs>
- Since:
- 2.0.0
-
skipInputs
List of input (protocol) not to treate separated by comma. Example :<skipInputs>xmi</skipInputs> <skipInputs>xmi,model</skipInputs>
- Since:
- 2.0.0
-
outputDirectory
@Parameter(property="eugene.outputDirectory", defaultValue="target/generated-sources", required=true) protected File outputDirectoryWhere to generate files.- Since:
- 2.0.0
-
extractDirectory
@Parameter(property="eugene.extractDirectory", defaultValue="target/extracted-sources", required=true) protected File extractDirectoryWhere to copy extracted files (when using class-path data).- Since:
- 2.1.3
-
overwrite
@Parameter(property="eugene.overwrite", defaultValue="false") protected boolean overwriteEcrase les fichiers générés.- Since:
- 2.0.0
-
verbose
@Parameter(property="eugene.verbose", defaultValue="${maven.verbose}") protected boolean verbosePour activer le mode verbeux.- Since:
- 2.0.0
-
encoding
@Parameter(property="eugene.encoding", defaultValue="${project.build.sourceEncoding}") protected String encodingEncoding to be used for generation of files. Note: If nothing is filled here, we will use the system propertyfile.encoding.- Since:
- 2.0.0
-
testPhase
@Parameter(property="eugene.testPhase", defaultValue="false") protected boolean testPhaseA flag to mark the mojo to be used in a test phase. This will permits to add generated sources in test compile roots.- Since:
- 2.0.0
-
modelType
@Parameter(property="eugene.modelType", defaultValue="objectmodel", required=true) protected String modelTypeThe type of model to be used. By default, use anobjectmodel.- Since:
- 2.0.0
-
properties
-
dryRun
@Parameter(property="eugene.dryRun", defaultValue="false") protected boolean dryRunNe génère rien, analyse juste la configuration.- Since:
- 2.0.0
-
fullPackagePath
@Parameter(property="generator.fullPackagePath", defaultValue="${project.groupId}.${project.artifactId}") protected String fullPackagePathNom du paquetage pour les fichiers générés (xmi input sepcific).- Since:
- 2.0.0
-
resolver
@Parameter(property="generator.resolver", defaultValue="org.nuiton.util.ResourceResolver") protected String resolverNom du resolver a utiliser pour les transformations xmi vers model (xmi input sepcific).- Since:
- 2.0.0
-
templates
Templates à utiliser, séparés par des virgules pour les transformations depuis les models (model input sepcific).- Since:
- 0.50
-
excludeTemplates
Templates à ne pas utiliser lors de la transformations des models (model input sepcific).- Since:
- 0.63
-
defaultPackage
@Parameter(property="eugene.defaultPackage", defaultValue="${project.groupId}.${project.artifactId}") protected String defaultPackageNom par défaut du paquetage généré (model input specific).- Since:
- 0.50
-
generatedPackages
List of packages to generate (comma separated). (model input specific). If the parameter is not filled, will generate all packages.- Since:
- 1.0.0-rc-8
-
extractedPackages
@Parameter(property="eugene.extractedPackages", defaultValue="${project.groupId}.${project.artifactId}") protected String extractedPackagesList of package to extract from xmi to models. (model input specific). If the parameter is not filled, will extract all packages.- Since:
- 1.0.0-rc-8
-
failIfUnsafe
@Parameter(property="eugene.failIfUnsafe", defaultValue="true") protected boolean failIfUnsafeA flag to fail if model properties is not safe (means some tagValues or stereotypes are not correct). Note: since version 3.0, the default value istrue.- Since:
- 2.9
-
modelExtensionFile
To use a new object model extension file.- Since:
- 3.0
-
project
@Parameter(defaultValue="${project}", readonly=true) protected org.apache.maven.project.MavenProject projectMaven project.- Since:
- 2.0.0
-
settings
@Parameter(defaultValue="${settings}", readonly=true) protected org.apache.maven.settings.Settings settingsLe settings (pour obtenir le mode offline).- Since:
- 2.0.0
-
_models
-
writers
-
modelReaders
-
modelTemplates
-
engine
@Component(role=org.nuiton.eugene.writer.ChainedWriterEngine.class) protected org.nuiton.eugene.writer.ChainedWriterEngine engineThe engine to computeChainedFileWriterfrom inputs entries. -
modelHelper
protected org.nuiton.eugene.ModelHelper modelHelper -
fixedClassLoader
fixed classloader -
templateList
-
-
Constructor Details
-
GenerateMojo
public GenerateMojo()
-
-
Method Details
-
newWriterReport
protected org.nuiton.eugene.writer.WriterReport newWriterReport() -
init
-
checkSkip
protected boolean checkSkip()- Overrides:
checkSkipin classorg.nuiton.plugin.AbstractPlugin
-
doAction
-
applyTemplates
protected void applyTemplates(org.nuiton.eugene.models.Model model, Long lastModifiedSource, File outputDirectory, List<org.nuiton.eugene.Template<org.nuiton.eugene.models.Model>> templateList, org.nuiton.eugene.writer.WriterReport writerReport) throws IOException - Throws:
IOException
-
setInputs
-
getOutputDirectory
- Specified by:
getOutputDirectoryin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getExtractDirectory
- Specified by:
getExtractDirectoryin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getProperties
-
getClassLoader
- Specified by:
getClassLoaderin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getProject
public org.apache.maven.project.MavenProject getProject()- Specified by:
getProjectin interfaceorg.nuiton.plugin.Plugin
-
setProject
public void setProject(org.apache.maven.project.MavenProject project) - Specified by:
setProjectin interfaceorg.nuiton.plugin.Plugin
-
isVerbose
public boolean isVerbose()- Specified by:
isVerbosein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration- Specified by:
isVerbosein interfaceorg.nuiton.plugin.Plugin
-
setVerbose
public void setVerbose(boolean verbose) - Specified by:
setVerbosein interfaceorg.nuiton.plugin.Plugin
-
getEncoding
- Specified by:
getEncodingin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration- Specified by:
getEncodingin interfaceorg.nuiton.plugin.PluginWithEncoding
-
setEncoding
- Specified by:
setEncodingin interfaceorg.nuiton.plugin.PluginWithEncoding
-
isOverwrite
public boolean isOverwrite()- Specified by:
isOverwritein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
isOffline
public boolean isOffline()- Specified by:
isOfflinein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
isTestPhase
public boolean isTestPhase()- Specified by:
isTestPhasein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getModelType
- Specified by:
getModelTypein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getWriters
-
getModelHelper
public org.nuiton.eugene.ModelHelper getModelHelper()- Specified by:
getModelHelperin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getBasedir
- Specified by:
getBasedirin interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getModelExtensionFile
- Specified by:
getModelExtensionFilein interfaceorg.nuiton.eugene.writer.ChainedFileWriterConfiguration
-
getExcludeTemplatesAsString
- Returns:
- the string representation of excludesTemplates (separated by comma)
-
getFixedClassLoader
Prepare le classLoader a utiliser dans le generateur. Si le mojo est en phase de testtestPhasea été renseigné, target/classes est rajouté. Si des références à des sibling modules, ils seront rajoutés aussi.- Returns:
- le class loader modifie
- Throws:
org.apache.maven.plugin.MojoExecutionException- if any pb
-
fixCompileSourceRoots
permet d'ajout le répertoire de génération des fichiers java dans les répertoires de compilation du projet Maven.- Parameters:
destDirGen- le repertoire a traiter
-
initTemplates
-
reportGeneratedFiles
-
reportCopiedResources
-