@Component(role=FilesetArchetypeGenerator.class) public class DefaultFilesetArchetypeGenerator extends org.codehaus.plexus.logging.AbstractLogEnabled implements FilesetArchetypeGenerator
Modifier and Type | Field and Description |
---|---|
private ArchetypeArtifactManager |
archetypeArtifactManager |
private ArchetypeFilesResolver |
archetypeFilesResolver |
private static java.lang.String |
DELIMITER
Token delimiter.
|
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 |
ROLE
Constructor and Description |
---|
DefaultFilesetArchetypeGenerator() |
Modifier and Type | Method and 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 surrounded by the
DELIMITER ) 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) |
@Requirement private ArchetypeArtifactManager archetypeArtifactManager
@Requirement private ArchetypeFilesResolver archetypeFilesResolver
@Requirement private PomManager pomManager
@Requirement private org.codehaus.plexus.velocity.VelocityComponent velocity
private static final java.lang.String DELIMITER
private static final java.util.regex.Pattern TOKEN_PATTERN
public void generateArchetype(ArchetypeGenerationRequest request, java.io.File archetypeFile) throws UnknownArchetype, ArchetypeNotConfigured, ProjectDirectoryExists, PomFileExists, OutputFileExists, ArchetypeGenerationFailure
FilesetArchetypeGenerator
generateArchetype
in interface FilesetArchetypeGenerator
UnknownArchetype
ArchetypeNotConfigured
ProjectDirectoryExists
PomFileExists
OutputFileExists
ArchetypeGenerationFailure
public java.lang.String getPackageAsDirectory(java.lang.String packageName)
private boolean copyFile(java.io.File outFile, java.lang.String template, boolean failIfExists, java.util.zip.ZipFile archetypeZipFile) throws java.io.FileNotFoundException, OutputFileExists, java.io.IOException
java.io.FileNotFoundException
OutputFileExists
java.io.IOException
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
OutputFileExists
java.io.FileNotFoundException
java.io.IOException
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)
private java.lang.String replaceFilenameTokens(java.lang.String filePath, org.apache.velocity.context.Context context)
DELIMITER
) 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.filePath
- the file name and path to be interpolatedcontext
- contains the available propertiesprivate java.lang.String getPackageInPathFormat(java.lang.String aPackage)
private boolean isArchetypeConfigured(ArchetypeDescriptor archetypeDescriptor, ArchetypeGenerationRequest request)
private void setParentArtifactId(org.apache.velocity.context.Context context, java.lang.String artifactId)
private org.apache.velocity.context.Context prepareVelocityContext(ArchetypeGenerationRequest request)
private boolean maybeVelocityExpression(java.lang.String value)
private java.lang.String evaluateExpression(org.apache.velocity.context.Context context, java.lang.String key, java.lang.String value)
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
OutputFileExists
ArchetypeGenerationFailure
java.io.FileNotFoundException
java.io.IOException
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
OutputFileExists
ArchetypeGenerationFailure
java.io.FileNotFoundException
java.io.IOException
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 OutputFileExists, ArchetypeGenerationFailure
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.dom4j.DocumentException, org.codehaus.plexus.util.xml.pull.XmlPullParserException, ArchetypeGenerationFailure, InvalidPackaging, java.io.IOException, OutputFileExists
org.dom4j.DocumentException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
ArchetypeGenerationFailure
InvalidPackaging
java.io.IOException
OutputFileExists
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.dom4j.DocumentException, org.codehaus.plexus.util.xml.pull.XmlPullParserException, ArchetypeGenerationFailure, InvalidPackaging, java.io.IOException, java.io.FileNotFoundException, OutputFileExists
org.dom4j.DocumentException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
ArchetypeGenerationFailure
InvalidPackaging
java.io.IOException
java.io.FileNotFoundException
OutputFileExists
private void processPom(org.apache.velocity.context.Context context, java.io.File pom, java.lang.String moduleOffset) throws OutputFileExists, ArchetypeGenerationFailure
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
OutputFileExists
java.io.IOException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
ArchetypeGenerationFailure
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 OutputFileExists, org.codehaus.plexus.util.xml.pull.XmlPullParserException, org.dom4j.DocumentException, java.io.IOException, InvalidPackaging, ArchetypeGenerationFailure
OutputFileExists
org.codehaus.plexus.util.xml.pull.XmlPullParserException
org.dom4j.DocumentException
java.io.IOException
InvalidPackaging
ArchetypeGenerationFailure
private boolean processTemplate(java.io.File outFile, org.apache.velocity.context.Context context, java.lang.String templateFileName, java.lang.String encoding, boolean failIfExists) throws OutputFileExists, ArchetypeGenerationFailure
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.FileNotFoundException, java.io.IOException
OutputFileExists
ArchetypeGenerationFailure
java.io.FileNotFoundException
java.io.IOException
private void restoreParentArtifactId(org.apache.velocity.context.Context context, java.lang.String parentArtifactId)
private java.io.File getTemporaryFile(java.io.File file)