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]

Reply via email to