[ 
https://issues.apache.org/jira/browse/ARCHETYPE-498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Petar Tahchiev updated ARCHETYPE-498:
-------------------------------------
    Description: 
Give user the ability to use maven properties in fileset include / exclude 
pattern.

In methodProcessTemplate of class 
{{org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator}}, line 
770 (in version 2.4).
Adding this lines:
{code}
            FileSet fileSet = iterator.next();
            count++;
            if ( fileSet.getIncludes() != null && 
!fileSet.getIncludes().isEmpty() )
            {
                final List<String> includes = new ArrayList<String>();
                for ( String include : fileSet.getIncludes() )
                {
                    includes.add( replaceFilenameTokens( include, context ) );
                }
                fileSet.setIncludes( includes );
            }
            if ( fileSet.getExcludes() != null && 
!fileSet.getExcludes().isEmpty() )
            {
                final List<String> excludes = new ArrayList<String>();
                for ( String exclude : fileSet.getExcludes() )
                {
                    excludes.add( replaceFilenameTokens( exclude, context ) );
                }
                fileSet.setExcludes( excludes );
            }
{code}
is really usefull for conditional archetype generation !

So in {{archetype-metadata.xml}}
{code}
    <requiredProperties>
        <requiredProperty key="base-name">
            <defaultValue>${artifactId.substring(0,1)}</defaultValue>
        </requiredProperty>
    </requiredProperties>
    <fileSets>
        <fileSet filtered="true" packaged="false" encoding="UTF-8">
            <directory>src/main/resources/directory>
            <includes>
                <include>__base-name__*.*</include>
            </includes>
        </fileSet>
    </fileSets>
{code}



  was:
Give user the ability to use maven properties in fileset include / exclude 
pattern.

In methodProcessTemplate of class 
org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator, line 770 
(in version 2.4).
Adding this lines:
{code}
            FileSet fileSet = iterator.next();
            count++;
            if ( fileSet.getIncludes() != null && 
!fileSet.getIncludes().isEmpty() )
            {
                final List<String> includes = new ArrayList<String>();
                for ( String include : fileSet.getIncludes() )
                {
                    includes.add( replaceFilenameTokens( include, context ) );
                }
                fileSet.setIncludes( includes );
            }
            if ( fileSet.getExcludes() != null && 
!fileSet.getExcludes().isEmpty() )
            {
                final List<String> excludes = new ArrayList<String>();
                for ( String exclude : fileSet.getExcludes() )
                {
                    excludes.add( replaceFilenameTokens( exclude, context ) );
                }
                fileSet.setExcludes( excludes );
            }
{code}
is really usefull for conditional archetype generation !

So in {{archetype-metadata.xml}}
{code}
    <requiredProperties>
        <requiredProperty key="base-name">
            <defaultValue>${artifactId.substring(0,1)}</defaultValue>
        </requiredProperty>
    </requiredProperties>
    <fileSets>
        <fileSet filtered="true" packaged="false" encoding="UTF-8">
            <directory>src/main/resources/directory>
            <includes>
                <include>__base-name__*.*</include>
            </includes>
        </fileSet>
    </fileSets>
{code}




> Ability to use properties in include and exclude pattern in fileset
> -------------------------------------------------------------------
>
>                 Key: ARCHETYPE-498
>                 URL: https://issues.apache.org/jira/browse/ARCHETYPE-498
>             Project: Maven Archetype
>          Issue Type: New Feature
>          Components: Generator
>    Affects Versions: 2.4
>         Environment: all
>            Reporter: Olivier GUILLET
>            Priority: Critical
>              Labels: features, patch
>
> Give user the ability to use maven properties in fileset include / exclude 
> pattern.
> In methodProcessTemplate of class 
> {{org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator}}, 
> line 770 (in version 2.4).
> Adding this lines:
> {code}
>             FileSet fileSet = iterator.next();
>             count++;
>             if ( fileSet.getIncludes() != null && 
> !fileSet.getIncludes().isEmpty() )
>             {
>                 final List<String> includes = new ArrayList<String>();
>                 for ( String include : fileSet.getIncludes() )
>                 {
>                     includes.add( replaceFilenameTokens( include, context ) );
>                 }
>                 fileSet.setIncludes( includes );
>             }
>             if ( fileSet.getExcludes() != null && 
> !fileSet.getExcludes().isEmpty() )
>             {
>                 final List<String> excludes = new ArrayList<String>();
>                 for ( String exclude : fileSet.getExcludes() )
>                 {
>                     excludes.add( replaceFilenameTokens( exclude, context ) );
>                 }
>                 fileSet.setExcludes( excludes );
>             }
> {code}
> is really usefull for conditional archetype generation !
> So in {{archetype-metadata.xml}}
> {code}
>     <requiredProperties>
>         <requiredProperty key="base-name">
>             <defaultValue>${artifactId.substring(0,1)}</defaultValue>
>         </requiredProperty>
>     </requiredProperties>
>     <fileSets>
>         <fileSet filtered="true" packaged="false" encoding="UTF-8">
>             <directory>src/main/resources/directory>
>             <includes>
>                 <include>__base-name__*.*</include>
>             </includes>
>         </fileSet>
>     </fileSets>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to