Class DefaultFilesetArchetypeGenerator
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator
-
- All Implemented Interfaces:
FilesetArchetypeGenerator,org.codehaus.plexus.logging.LogEnabled
@Component(role=FilesetArchetypeGenerator.class) public class DefaultFilesetArchetypeGenerator extends org.codehaus.plexus.logging.AbstractLogEnabled implements FilesetArchetypeGenerator
-
-
Field Summary
Fields Modifier and Type Field Description private ArchetypeArtifactManagerarchetypeArtifactManagerprivate ArchetypeFilesResolverarchetypeFilesResolverprivate PomManagerpomManagerprivate static java.util.regex.PatternTOKEN_PATTERNPattern used to detect tokens in a string.private org.codehaus.plexus.velocity.VelocityComponentvelocity-
Fields inherited from interface org.apache.maven.archetype.generator.FilesetArchetypeGenerator
ROLE
-
-
Constructor Summary
Constructors Constructor Description DefaultFilesetArchetypeGenerator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleancopyFile(java.io.File outFile, java.lang.String template, boolean failIfExists, java.util.zip.ZipFile archetypeZipFile)private intcopyFiles(java.lang.String directory, java.util.List<java.lang.String> fileSetResources, boolean packaged, java.lang.String packageName, java.io.File outputDirectoryFile, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, boolean failIfExists, org.apache.velocity.context.Context context)private java.lang.StringevaluateExpression(org.apache.velocity.context.Context context, java.lang.String key, java.lang.String value)voidgenerateArchetype(ArchetypeGenerationRequest request, java.io.File archetypeFile)Generate a project from an archetype file.private java.lang.StringgetEncoding(java.lang.String archetypeEncoding)private java.lang.StringgetOffsetSeparator(java.lang.String moduleOffset)private java.io.FilegetOutputFile(java.lang.String template, java.lang.String directory, java.io.File outputDirectoryFile, boolean packaged, java.lang.String packageName, java.lang.String moduleOffset, org.apache.velocity.context.Context context)java.lang.StringgetPackageAsDirectory(java.lang.String packageName)private java.lang.StringgetPackageInPathFormat(java.lang.String aPackage)private java.io.FilegetTemporaryFile(java.io.File file)private booleanisArchetypeConfigured(ArchetypeDescriptor archetypeDescriptor, ArchetypeGenerationRequest request)private booleanmaybeVelocityExpression(java.lang.String value)private org.apache.velocity.context.ContextprepareVelocityContext(ArchetypeGenerationRequest request)private voidprocessArchetypeTemplates(AbstractArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile)private voidprocessArchetypeTemplatesWithWarning(ArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile)private intprocessFileSet(java.lang.String directory, java.util.List<java.lang.String> fileSetResources, boolean packaged, java.lang.String packageName, org.apache.velocity.context.Context context, java.io.File outputDirectoryFile, java.lang.String moduleOffset, java.lang.String archetypeEncoding, boolean failIfExists)private voidprocessFilesetModule(java.lang.String rootArtifactId, java.lang.String artifactId, java.util.List<java.lang.String> archetypeResources, java.io.File pom, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, java.io.File basedirPom, java.io.File outputDirectoryFile, java.lang.String packageName, AbstractArchetypeDescriptor archetypeDescriptor, org.apache.velocity.context.Context context)private voidprocessFilesetProject(AbstractArchetypeDescriptor archetypeDescriptor, java.lang.String moduleId, java.util.List<java.lang.String> archetypeResources, java.io.File pom, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile, java.io.File basedirPom)private voidprocessPom(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset)private voidprocessPomWithMerge(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset)private voidprocessPomWithParent(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset, java.io.File basedirPom, java.lang.String moduleId)private booleanprocessTemplate(java.io.File outFile, org.apache.velocity.context.Context context, java.lang.String templateFileName, java.lang.String encoding, boolean failIfExists)private voidprocessTemplates(java.lang.String packageName, java.io.File outputDirectoryFile, org.apache.velocity.context.Context context, AbstractArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, boolean failIfExists)private java.lang.StringreplaceFilenameTokens(java.lang.String filePath, org.apache.velocity.context.Context context)Replaces all tokens (text matchingTOKEN_PATTERN) within the given string, using properties contained within the context.private voidrestoreParentArtifactId(org.apache.velocity.context.Context context, java.lang.String parentArtifactId)private voidsetParentArtifactId(org.apache.velocity.context.Context context, java.lang.String artifactId)
-
-
-
Field Detail
-
archetypeArtifactManager
@Requirement private ArchetypeArtifactManager archetypeArtifactManager
-
archetypeFilesResolver
@Requirement private ArchetypeFilesResolver archetypeFilesResolver
-
pomManager
@Requirement private PomManager pomManager
-
velocity
@Requirement private org.codehaus.plexus.velocity.VelocityComponent velocity
-
TOKEN_PATTERN
private static final java.util.regex.Pattern TOKEN_PATTERN
Pattern used to detect tokens in a string. Tokens are any text surrounded by the delimiter__.
-
-
Method Detail
-
generateArchetype
public void generateArchetype(ArchetypeGenerationRequest request, java.io.File archetypeFile) throws UnknownArchetype, ArchetypeNotConfigured, ProjectDirectoryExists, PomFileExists, OutputFileExists, ArchetypeGenerationFailure, InvalidPackaging
Description copied from interface:FilesetArchetypeGeneratorGenerate a project from an archetype file.
-
getPackageAsDirectory
public java.lang.String getPackageAsDirectory(java.lang.String packageName)
-
copyFile
private boolean copyFile(java.io.File outFile, java.lang.String template, boolean failIfExists, java.util.zip.ZipFile archetypeZipFile) throws OutputFileExists, java.io.IOException- Throws:
OutputFileExistsjava.io.IOException
-
copyFiles
private int copyFiles(java.lang.String directory, java.util.List<java.lang.String> fileSetResources, boolean packaged, java.lang.String packageName, java.io.File outputDirectoryFile, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, boolean failIfExists, org.apache.velocity.context.Context context) throws OutputFileExists, java.io.FileNotFoundException, java.io.IOException- Throws:
OutputFileExistsjava.io.FileNotFoundExceptionjava.io.IOException
-
getEncoding
private java.lang.String getEncoding(java.lang.String archetypeEncoding)
-
getOffsetSeparator
private java.lang.String getOffsetSeparator(java.lang.String moduleOffset)
-
getOutputFile
private java.io.File getOutputFile(java.lang.String template, java.lang.String directory, java.io.File outputDirectoryFile, boolean packaged, java.lang.String packageName, java.lang.String moduleOffset, org.apache.velocity.context.Context context)
-
replaceFilenameTokens
private java.lang.String replaceFilenameTokens(java.lang.String filePath, org.apache.velocity.context.Context context)Replaces all tokens (text matchingTOKEN_PATTERN) within the given string, using properties contained within the context. If a property does not exist in the context, the token is left unmodified and a warning is logged.- Parameters:
filePath- the file name and path to be interpolatedcontext- contains the available properties
-
getPackageInPathFormat
private java.lang.String getPackageInPathFormat(java.lang.String aPackage)
-
isArchetypeConfigured
private boolean isArchetypeConfigured(ArchetypeDescriptor archetypeDescriptor, ArchetypeGenerationRequest request)
-
setParentArtifactId
private void setParentArtifactId(org.apache.velocity.context.Context context, java.lang.String artifactId)
-
prepareVelocityContext
private org.apache.velocity.context.Context prepareVelocityContext(ArchetypeGenerationRequest request)
-
maybeVelocityExpression
private boolean maybeVelocityExpression(java.lang.String value)
-
evaluateExpression
private java.lang.String evaluateExpression(org.apache.velocity.context.Context context, java.lang.String key, java.lang.String value)
-
processArchetypeTemplates
private void processArchetypeTemplates(AbstractArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile) throws OutputFileExists, ArchetypeGenerationFailure, java.io.FileNotFoundException, java.io.IOException
- Throws:
OutputFileExistsArchetypeGenerationFailurejava.io.FileNotFoundExceptionjava.io.IOException
-
processArchetypeTemplatesWithWarning
private void processArchetypeTemplatesWithWarning(ArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile) throws OutputFileExists, ArchetypeGenerationFailure, java.io.FileNotFoundException, java.io.IOException
- Throws:
OutputFileExistsArchetypeGenerationFailurejava.io.FileNotFoundExceptionjava.io.IOException
-
processFileSet
private int processFileSet(java.lang.String directory, java.util.List<java.lang.String> fileSetResources, boolean packaged, java.lang.String packageName, org.apache.velocity.context.Context context, java.io.File outputDirectoryFile, java.lang.String moduleOffset, java.lang.String archetypeEncoding, boolean failIfExists) throws java.io.IOException, OutputFileExists, ArchetypeGenerationFailure- Throws:
java.io.IOExceptionOutputFileExistsArchetypeGenerationFailure
-
processFilesetModule
private void processFilesetModule(java.lang.String rootArtifactId, java.lang.String artifactId, java.util.List<java.lang.String> archetypeResources, java.io.File pom, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, java.io.File basedirPom, java.io.File outputDirectoryFile, java.lang.String packageName, AbstractArchetypeDescriptor archetypeDescriptor, org.apache.velocity.context.Context context) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException, javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, javax.xml.transform.TransformerException, OutputFileExists, ArchetypeGenerationFailure, InvalidPackaging- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionjava.io.IOExceptionjavax.xml.parsers.ParserConfigurationExceptionorg.xml.sax.SAXExceptionjavax.xml.transform.TransformerExceptionOutputFileExistsArchetypeGenerationFailureInvalidPackaging
-
processFilesetProject
private void processFilesetProject(AbstractArchetypeDescriptor archetypeDescriptor, java.lang.String moduleId, java.util.List<java.lang.String> archetypeResources, java.io.File pom, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, org.apache.velocity.context.Context context, java.lang.String packageName, java.io.File outputDirectoryFile, java.io.File basedirPom) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException, javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, javax.xml.transform.TransformerException, OutputFileExists, ArchetypeGenerationFailure, InvalidPackaging
- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionjava.io.IOExceptionjavax.xml.parsers.ParserConfigurationExceptionorg.xml.sax.SAXExceptionjavax.xml.transform.TransformerExceptionOutputFileExistsArchetypeGenerationFailureInvalidPackaging
-
processPom
private void processPom(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset) throws java.io.IOException, OutputFileExists, ArchetypeGenerationFailure- Throws:
java.io.IOExceptionOutputFileExistsArchetypeGenerationFailure
-
processPomWithMerge
private void processPomWithMerge(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset) throws OutputFileExists, java.io.IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException, ArchetypeGenerationFailure- Throws:
OutputFileExistsjava.io.IOExceptionorg.codehaus.plexus.util.xml.pull.XmlPullParserExceptionArchetypeGenerationFailure
-
processPomWithParent
private void processPomWithParent(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset, java.io.File basedirPom, java.lang.String moduleId) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, java.io.IOException, javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, javax.xml.transform.TransformerException, OutputFileExists, ArchetypeGenerationFailure, InvalidPackaging- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserExceptionjava.io.IOExceptionjavax.xml.parsers.ParserConfigurationExceptionorg.xml.sax.SAXExceptionjavax.xml.transform.TransformerExceptionOutputFileExistsArchetypeGenerationFailureInvalidPackaging
-
processTemplate
private boolean processTemplate(java.io.File outFile, org.apache.velocity.context.Context context, java.lang.String templateFileName, java.lang.String encoding, boolean failIfExists) throws java.io.IOException, OutputFileExists, ArchetypeGenerationFailure- Throws:
java.io.IOExceptionOutputFileExistsArchetypeGenerationFailure
-
processTemplates
private void processTemplates(java.lang.String packageName, java.io.File outputDirectoryFile, org.apache.velocity.context.Context context, AbstractArchetypeDescriptor archetypeDescriptor, java.util.List<java.lang.String> archetypeResources, java.util.zip.ZipFile archetypeZipFile, java.lang.String moduleOffset, boolean failIfExists) throws OutputFileExists, ArchetypeGenerationFailure, java.io.IOException- Throws:
OutputFileExistsArchetypeGenerationFailurejava.io.IOException
-
restoreParentArtifactId
private void restoreParentArtifactId(org.apache.velocity.context.Context context, java.lang.String parentArtifactId)
-
getTemporaryFile
private java.io.File getTemporaryFile(java.io.File file)
-
-