On 5/10/07, Xavier Hanin <[EMAIL PROTECTED]> wrote:

There is however a slight problem - this makes the API incompatible with
> 2.0.0-alpha-1. It is possible to make doExecute not abstract in IvyTask
> and therefore validate all the other tasks that are kept by people, but
> this can lead to hard to find errors.


breaking the API is not a major problem, Ivy 2.0 is already breaking a lot
of API, and we named our last release alpha because it is still subject to
API break (I tihnk we warn users against that in the release notes). So I
prefer having things like this, we may even declare execute final to make
sure it isn't overridden improperly. I'll review your patch soon and apply
it.


I may have found another way of doing things before and after the task is
executed without breaking the API and the conventions when writing ant task.
Indeed Ant fire events before starting a task and after finishing it (see
the perform method). So we may register as a listener of the project in the
init method of IvyTask, then push on task started and pop on task finished.
Each task would be responsible for its own events only.
The drawback of this approach is that if someone calls execute directly (a
public method) instead of perform, we won't get the correct context. This is
not what programs are supposed to do, so I don't know if it's really a
problem or not (I realize I usually call execute instead of perform, which
is not a good thing :-( ).

So, what do you think?

Xavier

Xavier

Best Regards.
>
> --jw
>
> --
> Jaroslaw Wypychowski
> Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego UW
>
> [EMAIL PROTECTED]
>
>


--
Xavier Hanin - Independent Java Consultant
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/




--
Xavier Hanin - Independent Java Consultant
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

Reply via email to