Hi,

At our company we're developing Ada95 code for various platforms, including
OpenVMS.  We've built our own development tools based on Ant for this.  I
was wondering if someone in the Ant community had some useful tips or other
information on this topic to share.  E.g. what tasks work / don't work.

I have experienced some problems myself using the <exec> task:

 - To use Runtime.exec() the command to be executed usually has to be
written into a temporary DCL script first.  Then this script is executed
using Runtime.exec().

 - The Java 1.4 JVM provided by Compaq/HP has some problems with
Runtime.exec().  Specifically it doesn't support the variant of
Runtime.exec() with a specified working directory (Runtime#exec(String[],
String[], File)).

 - The Ant <exec> task throws a BuildException if the exit code is unequal
zero.  On VMS an odd exit code signifies success and even exit codes are
errors.  (The exit code zero actually signifies a warning.)

I implemented my own <exec> task by subclassing ExecTask to get around these
incompatibilities.  But it proved to be quite hard as some fields and
methods are private and/or final.  So I think it would probably be easier to
implement an <exec> task which only is for VMS and plug that in when running
on VMS.  Of course all tasks based on ExecTask still won't work.  I.e.
<apply> and <chmod>.  The latter probably doesn't make sense on VMS anyways,
but <apply> would be nice to have.  Maybe <apply> could be refactored to use
the <exec> task instead of subclass its implementation.  Does this make
sense?

Regards,

--
knut

Reply via email to