ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <>
Subject Re: User implementations of custom interfaces can have access to Task instance?
Date Mon, 19 Mar 2018 07:24:03 GMT
On 2018-03-17, Jaikiran Pai wrote:

> Thanks for the input, Stefan. I took your suggestion and exposed a API
> to get the Project on that custom interface. It doesn't/can't directly
> use the IntrospectionHelper support available to project components,
> since unlike nested elements of a task, this custom class can be
> plugged in something like:

> <listener
> classname=""/>

> plus the fact that this custom class can reside in a classloader
> defined by nested <classpath> elements of this task.

Just a few remarks, do with them however you see fit :-)

* you can use part of IntrospectionHelper's infrastructure, of
  course. At least Project#setProjectReference so you don't have to
  reinvent the reflrection logic.

* Your approach for listeners is that of the original JUnit task and
  predates support for typedef together with

      public void add(SomeInterface child);

  for nested elements. Later we would have used the newer approach (see
  for example the <condition> task accepting arbitrary Condition

  You may consider using

      public void addConfigured(ListenerInterface l) { ... }

  in your task and

      <typedef name="customListener"
      <junitlauncher ...>

   in the build file. You'd even get classloader support for free.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message