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 ArchetypeArtifactManager
archetypeArtifactManager
private ArchetypeFilesResolver
archetypeFilesResolver
private PomManager
pomManager
private static java.util.regex.Pattern
TOKEN_PATTERN
Pattern used to detect tokens in a string.private org.codehaus.plexus.velocity.VelocityComponent
velocity
-
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 boolean
copyFile(java.io.File outFile, java.lang.String template, boolean failIfExists, java.util.zip.ZipFile archetypeZipFile)
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)
private java.lang.String
evaluateExpression(org.apache.velocity.context.Context context, java.lang.String key, java.lang.String value)
void
generateArchetype(ArchetypeGenerationRequest request, java.io.File archetypeFile)
Generate a project from an archetype file.private java.lang.String
getEncoding(java.lang.String archetypeEncoding)
private java.lang.String
getOffsetSeparator(java.lang.String moduleOffset)
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)
java.lang.String
getPackageAsDirectory(java.lang.String packageName)
private java.lang.String
getPackageInPathFormat(java.lang.String aPackage)
private java.io.File
getTemporaryFile(java.io.File file)
private boolean
isArchetypeConfigured(ArchetypeDescriptor archetypeDescriptor, ArchetypeGenerationRequest request)
private boolean
maybeVelocityExpression(java.lang.String value)
private org.apache.velocity.context.Context
prepareVelocityContext(ArchetypeGenerationRequest request)
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)
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)
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)
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)
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)
private void
processPom(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset)
private void
processPomWithMerge(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset)
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)
private boolean
processTemplate(java.io.File outFile, org.apache.velocity.context.Context context, java.lang.String templateFileName, java.lang.String encoding, boolean failIfExists)
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)
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.private void
restoreParentArtifactId(org.apache.velocity.context.Context context, java.lang.String parentArtifactId)
private void
setParentArtifactId(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:FilesetArchetypeGenerator
Generate 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:
OutputFileExists
java.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:
OutputFileExists
java.io.FileNotFoundException
java.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:
OutputFileExists
ArchetypeGenerationFailure
java.io.FileNotFoundException
java.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:
OutputFileExists
ArchetypeGenerationFailure
java.io.FileNotFoundException
java.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.IOException
OutputFileExists
ArchetypeGenerationFailure
-
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.XmlPullParserException
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
javax.xml.transform.TransformerException
OutputFileExists
ArchetypeGenerationFailure
InvalidPackaging
-
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.XmlPullParserException
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
javax.xml.transform.TransformerException
OutputFileExists
ArchetypeGenerationFailure
InvalidPackaging
-
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.IOException
OutputFileExists
ArchetypeGenerationFailure
-
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:
OutputFileExists
java.io.IOException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
ArchetypeGenerationFailure
-
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.XmlPullParserException
java.io.IOException
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
javax.xml.transform.TransformerException
OutputFileExists
ArchetypeGenerationFailure
InvalidPackaging
-
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.IOException
OutputFileExists
ArchetypeGenerationFailure
-
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:
OutputFileExists
ArchetypeGenerationFailure
java.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)
-
-