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

Karl Heinz Marbaise closed MASSEMBLY-445.
-----------------------------------------
    Resolution: Implemented

> Support parametrization of component descriptors
> ------------------------------------------------
>
>                 Key: MASSEMBLY-445
>                 URL: https://issues.apache.org/jira/browse/MASSEMBLY-445
>             Project: Maven Assembly Plugin
>          Issue Type: Wish
>          Components: component descriptor
>    Affects Versions: 2.2-beta-4
>            Reporter: Stevo Slavić
>            Priority: Major
>         Attachments: 
> org.apache.maven.plugins.maven-assembly-plugin-MASSEMBLY-445.patch
>
>
> Please support parametrization of component descriptors. One should be able 
> to specify parameter placeholders in component descriptors, and when 
> referencing component descriptor from an assembly descriptor provide actual 
> parameter value(s) which would then be applied to the parameter placeholders. 
> One should be able to set global parameters (for all component descriptors), 
> and component descriptor specific parameters, with component descriptor 
> specific parameters overriding global ones if their names overlap.
> This would be useful if e.g. one uses assembly descriptors to specify 
> assemblies for different deployment environments, and if these assemblies 
> differ (see example [1]) only in which environment specific configuration 
> file should be included in the assembly where this distinction is based on 
> configuration file name suffix - this suffix could be passed to shared 
> component descriptor as parameter, like in example [2].
> [1] assembly descriptor example without parameters
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <assembly 
> xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1";
>                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>                       
> xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1
>                                                               
> http://maven.apache.org/xsd/assembly-1.1.1.xsd";>
>       <id>prod</id>
>       <formats>
>               <format>war</format>
>       </formats>
>       <includeBaseDirectory>false</includeBaseDirectory>
>       <fileSets>
>               <fileSet>
>                       
> <directory>${project.build.directory}/${project.build.finalName}</directory>
>                       <outputDirectory>/</outputDirectory>
>                       <excludes>
>                               <exclude>**/jdbc.properties</exclude>
>                               <exclude>**/jdbc-*.properties</exclude>
>                       </excludes>
>                       <excludes>
>                               <exclude>**/log4j.xml</exclude>
>                               <exclude>**/log4j-*.xml</exclude>
>                       </excludes>
>               </fileSet>
>       </fileSets>
>       <files>
>               <file>
>                       
> <source>${project.build.outputDirectory}/com/foo/bar/cfg/jdbc-${environment}.properties</source>
>                       
> <outputDirectory>WEB-INF/classes/com/foo/bar/cfg/</outputDirectory>
>                       <destName>jdbc.properties</destName>
>               </file>
>               <file>
>                       
> <source>${project.build.outputDirectory}/com/foo/bar/cfg/log4j-${environment}.xml</source>
>                       <outputDirectory>WEB-INF/classes/</outputDirectory>
>                       <destName>log4j.xml</destName>
>               </file>
>       </files>
> </assembly>
> {code}
> [2] parametrized component descriptor and usage example
> src/main/assembly/component.xml
> {code:xml}
> <component>
>       <fileSets>
>               <fileSet>
>                       
> <directory>${project.build.directory}/${project.build.finalName}</directory>
>                       <outputDirectory>/</outputDirectory>
>                       <excludes>
>                               <exclude>**/jdbc.properties</exclude>
>                               <exclude>**/jdbc-*.properties</exclude>
>                       </excludes>
>                       <excludes>
>                               <exclude>**/log4j.xml</exclude>
>                               <exclude>**/log4j-*.xml</exclude>
>                       </excludes>
>               </fileSet>
>       </fileSets>
>       <files>
>               <file>
>                       
> <source>${project.build.outputDirectory}/com/foo/bar/cfg/jdbc-${environment}.properties</source>
>                       
> <outputDirectory>WEB-INF/classes/com/foo/bar/cfg/</outputDirectory>
>                       <destName>jdbc.properties</destName>
>               </file>
>               <file>
>                       
> <source>${project.build.outputDirectory}/com/foo/bar/cfg/log4j-${environment}.xml</source>
>                       <outputDirectory>WEB-INF/classes/</outputDirectory>
>                       <destName>log4j.xml</destName>
>               </file>
>       </files>
> </component>
> {code}
> src/main/assembly/packaging-prod.xml
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <assembly 
> xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1";
>                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>                       
> xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1
>                                                               
> http://maven.apache.org/xsd/assembly-1.1.1.xsd";>
>       <id>prod</id>
>       <formats>
>               <format>war</format>
>       </formats>
>       <includeBaseDirectory>false</includeBaseDirectory>
>       <componentDescriptors>
>               <componentDescriptor>
>                       
> <pathToComponentDescriptor>src/main/assembly/component.xml</pathToComponentDescriptor>
>                       <parameters>
>                               <parameter>
>                                       <name>environment</environment>
>                                       <value>prod</value>
>                               </parameter>
>                       </parameters
>               </componentDescriptor>
>       </componentDescriptors>
> </assembly>
> {code}
> src/main/assembly/packaging-stag.xml
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <assembly 
> xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1";
>                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>                       
> xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1
>                                                               
> http://maven.apache.org/xsd/assembly-1.1.1.xsd";>
>       <id>stag</id>
>       <formats>
>               <format>war</format>
>       </formats>
>       <includeBaseDirectory>false</includeBaseDirectory>
>       <componentDescriptors>
>               <componentDescriptor>
>                       
> <pathToComponentDescriptor>src/main/assembly/component.xml</pathToComponentDescriptor>
>                       <parameters>
>                               <!-- component descriptor specific parameters 
> -->
>                               <parameter>
>                                       <name>environment</environment>
>                                       <value>stag</value>
>                               </parameter>
>                       </parameters>
>               </componentDescriptor>
>               </parameters>
>                       <!-- global parameters for all component descriptors -->
>               </parameters>
>       </componentDescriptors>
> </assembly>
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to