On Wed, 3 Mar 2004, Craig Berry <[EMAIL PROTECTED]> wrote:
> The fit turns out to be rather awkward.
Doesn't look that bad to me.
> <!-- Gather the non-ejb EAR jars and build a fileset containing them -->
> <copy todir="${portblue.build.ear-libs}" flatten="true">
> <fileset refid="portblue.libs.ear"/>
> </copy>
>
> <fileset dir="${portblue.build.ear-libs}" id="lib.include"/>
Do your really need that copy operation or are you just doing it in
order to create the classpath entry?
> <pathconvert property="lib.prefix" pathsep=" ">
> <path location="${portblue.build.ear-libs}"/>
> </pathconvert>
Are you doing this to turn portblue.build.ear-libs into an absolute
path?
<property name="lib.prefix" location="${portblue.build.ear-libs}"/>
would be simpler.
> <pathconvert refid="lib.include" property="ear.classpath" dirsep="/"
> pathsep=" ">
> <map from="${lib.prefix}" to="lib"/>
> </pathconvert>
creates the property you need.
Assuming you don't need the <copy> task, the whole thing could be
simplyfied with the CVS HEAD version as
<pathconvert property="ear.classpath" dirsep="/" pathsep=" ">
<path>
<fileset refid="portblue.libs.ear"/>
</path>
<mapper type="regexp"
from=".*/([^/]*)$$"
to="lib/\1"
/>
</pathconvert>
would do. And once we get composite mappers, we could even do without
regular expressions. A "flatten" mapper followed by "glob" from="*"
to="lib/*" would do.
I understand that this operation may be common to build a Class-Path
attribute for arbitrary manifests, so if we want to create specific
support for it, my target would be the manifest task rather than the
ear task as well.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]