ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Loughran" <stev...@iseran.com>
Subject Re: Application CLOSE after running org.apache.tools.ant.Main.main()
Date Sun, 29 Dec 2002 02:41:59 GMT

----- Original Message -----
From: "Erik Hatcher" <jakarta-ant@ehatchersolutions.com>
To: "Ant Users List" <ant-user@jakarta.apache.org>
Sent: Friday, December 20, 2002 06:31
Subject: Re: Application CLOSE after running
org.apache.tools.ant.Main.main()


> Joey Gibson wrote:
> > On Fri, 20 Dec 2002 08:38:45 -0500, Erik Hatcher
> > <jakarta-ant@ehatchersolutions.com> wrote:
> >
> > ||| Ant's Main.main calls System.exit, that is why.
> >
> > I got bitten by a System.exit() call a while back (not Ant's main, but
> > another). I was wrapping a local utility in an Ant task and while the
task
> > ran and the tool did its job, Ant would just abort with no errors, no
> > messages, nothing. After a little fiddling I discovered it was a call to
> > exit(). Is the reason for Ant's main calling System.exit() simply to
return
> > an exit code to the OS? That's what it looks like. A cursory glance at
> > Ant's Main.start() method looks like one could use the
> > additionalUserProperties element to pass a property like "exit=true" or
> > something like that and then Ant could check that before calling
> > System.exit().
>
> Yes, I'm pretty sure thats the primary (only?) reason for the call to
> System.exit.
>
> But it seems folks should be integrating with Ant by emulating what
> Main.main does rather than simply invoking it directly.  I've toyed with
> writing a servlet that ran Ant once upon a time.  I just dug up the code
> and here it is:
>
>      final Project project = new Project();
>      AntListener listener = new AntListener();
>      project.addBuildListener(listener);
>      File buildFile = new File(buildFile);
>
>      Throwable exception = null;
>      try {
>        project.fireBuildStarted();
>        project.init();
>        ProjectHelper.configureProject(project, buildFile);
>        project.executeTarget(project.getDefaultTarget());
>      }
>      catch (BuildException e) {
>        exception = e;
>      }
>      finally {
>        project.fireBuildFinished(exception);
>
>        Writer out = response.getWriter();
>        out.write(listener.getLog());
>      }
>

This should be a taglib, surely, one that takes stuff inline...


--
To unsubscribe, e-mail:   <mailto:ant-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-user-help@jakarta.apache.org>


Mime
View raw message