I didn't have to use a custom logger. Instead, my custom EndTask is this:
package com.lgc.btlite;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
public class EndTask extends Task {
protected String _message = null;
public void execute()
{
if((_message != null) && (_message.length() > 0))
log("\n" + _message,Project.MSG_INFO);
getProject().fireBuildFinished(null);
System.exit(0);
}
public void setMessage(String message)
{
_message = message;
}
}
---
Shawn Castrianni
-----Original Message-----
From: Matt Benson [mailto:[email protected]]
Sent: Wednesday, May 18, 2011 10:27 AM
To: Ant Users List
Subject: Re: Custom task to force build success
On Wed, May 18, 2011 at 10:07 AM, Carlton Brown <[email protected]> wrote:
> I'm struggling to write a custom task that is essentially the opposite
> of "fail". I've seen it mentioned on this list before, but never
> found a conclusive answer.
>
> To be successful, a task expressed like this:
> <my:win message="You win!" if="${winning}" unless="${failing}">
> <!-- ideally, a nested condition would be permitted here, if it's
> easy to implement --> </my:win>
>
> The task would halt the build, and I would see the following output:
> You win!
> BUILD SUCCESSFUL
> Total time: 2 seconds
>
> and the exit code would be zero.
>
> The closest I got was to print the exit message and set the exit
> status to zero, but I still get this frustrating "BUILD FAILED"
> message, which is incompatible with the aesthetic of winning.
>
> Help?
>
Hi, Carlton. I think that you're going to need to provide a custom logger. I
would try:
public class FalseFailureSuppressingLogger extends
org.apache.tools.ant.DefaultLogger {
public void buildFinished(BuildEvent event) {
Throwable error = event.getException();
if (error instanceof ExitStatusException &&
((ExitStatusException) error).getStatus() == 0) {
event.setException(null);
}
try {
super.buildFinished(event);
} finally {
event.setException(error);
}
}
}
Then simply use <fail message="You win!" status="0" /> in your buildfile.
HTH,
Matt
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected] For additional
commands, e-mail: [email protected]
----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and
privileged information for the sole use of the intended recipient. Any review,
use, distribution, or disclosure by others is strictly prohibited. If you are
not the intended recipient (or authorized to receive information for the
intended recipient), please contact the sender by reply e-mail and delete all
copies of this message.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]