Hi,
I am writing a plugin that can patch resourses for different J2EE
servers. My build.properties file looks as below:
<snip>
# Resources to be patched (comma-separated list)
# this sets up identifiers for resources
# FIXME : Trim leading and trailing spaces in list
maven.assembler.patch.list=jrun,tomcat,weblogic
# set up patch-sets here (src, target & includes)
maven.assembler.patch.jrun.src=${basedir}/patches/jrun
maven.assembler.patch.jrun.target=${basedir}/www
maven.assembler.patch.jrun.includes=**.*.properties
maven.assembler.patch.tomcat.src=${basedir}/patches/tomcat
maven.assembler.patch.tomcat.target=${basedir}/www
maven.assembler.patch.tomcat.includes=**/*.xml
maven.assembler.patch.weblogic.src=${basedir}/patches/weblogic
maven.assembler.patch.weblogic.target=${basedir}/www
maven.assembler.patch.weblogic.includes=**/*.xml,**.*.properties
</snip>
and, I need to process it dynamically like this :
(a) create a list of patches. (easy)
(b) Iterate over patches and build 'patch-sets'. (stuck here!)
(c) copy over patches. (easy )
The plugin goal is reproduced below:
<goal name="erm:assemble">
<j:set var="list" value="${maven.assembler.patch.list}" />
<j:if test="${!empty(list)}">
<util:tokenize var="patches" delim=","
trim="true">${list}</util:tokenize>
<j:forEach items="${patches}" var="patchID" indexVar="index">
<log:info>INFO: Building Patch set for Patch ID :
${patchID}</log:info>
<j:set var="patch.src.dir"
value="maven.assembler.patch.${patchID}.src" />
^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (This is where I need nested expression,
something like ${maven.assembler.patch.${patchID}.src} )
<j:set var="patch.target.dir"
value="maven.assembler.patch.${patchID}.target" />
^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<!-- TODO: Test for valid source and target folders -->
<!-- Set up a temporary folder where release is being packaged -->
<j:set var="release.packaging.dir"
value="${basedir}/release-packaging" />
<ant:delete dir="${release.packaging.dir}"/>
<ant:mkdir dir="${release.packaging.dir}"/>
<!-- Make a copy of source folders in the release-packaging
directory -->
<ant:copy todir="${release.packaging.dir}/${patch.target.dir}" >
<fileset dir="${patch.src.dir}" includes="**/*.*" />
<!-- Use includes to filter file types -->
</ant:copy>
<!-- Copy over patches to target dir created under release
packaging -->
<ant:copy todir="${release.packaging.dir}/${patch.target.dir}" >
<fileset dir="${patch.target.dir}" includes="**/*.*" />
<!-- Use includes to filter file types -->
</ant:copy>
</j:forEach>
</j:if>
</goal>
Thanks in advance for any pointers. Appreciate it.
Cheers,
Rahul
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]