I'd just like to award Henri the "Most Unexpected (ab)Use of Ant"
award for this month ;-)  This approach of using Aspect Oriented
programming in Ant using build listeners is something I had never
heard of or thought of.  It's a bit on the scary side, but truly
innovative nonetheless!

Congrats Henri ;-)  --DD

On 7/19/06, Henri Yandell <[EMAIL PROTECTED]> wrote:
On 7/12/06, Henri Yandell <[EMAIL PROTECTED]> wrote:
> I suspect this isn't what was intended for the build listener, but
> I've been using it to override the build.xml for <junit> tasks. In
> startTask I ensure that haltonerror and haltonfailure are set to
> false. Next up I want to ensure there is always a <formatter
> type="xml"/>, but adding a new task in seems a lot more painful than
> simply modifying the existing objects.

Very happy; I've got it working. Many thanks for all the help!

I kept playing with the direction Matt had me go and it suddenly
worked (when I was really looking to see what the old error was). The
following code forces the haltonfailure and haltonerror attributes to
always be false; and ensures that an xml output is always done.

     public void taskStarted(BuildEvent event) {
           if(event.getTask().getTaskName().equals("junit")) {
               UnknownElement ue = (UnknownElement) event.getTask();
               RuntimeConfigurable rc = ue.getWrapper();
               rc.setAttribute("haltonfailure", "false");
               rc.setAttribute("haltonerror", "false");

               UnknownElement ue2 = new UnknownElement("formatter");
               ue.addChild(ue2);

               FormatterElement fe = new FormatterElement();
               RuntimeConfigurable rc2 = new RuntimeConfigurable(fe,
"formatter");
               rc2.setAttribute("type", "xml");
               rc.addChild(rc2);
           }
   }


Hopefully there won't be any surprises when I throw this into a real scenario.

Hen

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to