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 PomManager
     
    private static final java.util.regex.Pattern
    Pattern used to detect tokens in a string.
    private org.codehaus.plexus.velocity.VelocityComponent
     

    Fields inherited from interface org.apache.maven.archetype.generator.FilesetArchetypeGenerator

    ROLE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    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
     
    private boolean
    maybeVelocityExpression(java.lang.String value)
     
    private org.apache.velocity.context.Context
     
    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 matching TOKEN_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)
     

    Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled

    enableLogging, getLogger, setupLogger, setupLogger, setupLogger

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • 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 __.
  • Constructor Details

    • DefaultFilesetArchetypeGenerator

      public DefaultFilesetArchetypeGenerator()
  • Method Details

    • generateArchetype

      Description copied from interface: FilesetArchetypeGenerator
      Generate a project from an archetype file.
      Specified by:
      generateArchetype in interface FilesetArchetypeGenerator
      Throws:
      UnknownArchetype
      ArchetypeNotConfigured
      ProjectDirectoryExists
      PomFileExists
      OutputFileExists
      ArchetypeGenerationFailure
      InvalidPackaging
    • 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 matching TOKEN_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 interpolated
      context - 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)