ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Re: Opportunities for cohesion improvement and refatoring.
Date Thu, 20 Jul 2017 14:41:46 GMT
Welcome	João Paulo

On 2017-07-20, João Paulo Lemes Machado wrote:

> I was analyzing the modularization of some classes of Ant, and  I
> identified some opportunities for cohesion improvement in the following
> classes:

> Javac
> Javadoc
> FTPTask
> FileUtils
> AbstractFileSet

Similar to what I said about Project in the bugzilla issue you created
all these classes are part of Ant's public API and need to be treated
with care.

Ant has been around for more than fifteen years and an eco system of
extensions has ground around it. This is something that forces us to
be extra careful with refactoring.

Of the classes listed above Javadoc and FTPTask are unlikely to have
seen subclasses, Javac may have. FileUtils is unlikely to have seen
subclasses as a lot of its code is inside static methods or is
accessed via a quasi-singleton.

Still, when refactoring non-static public/protected methods you really
have to ensure you keep the existing who calls which method semantics
that subclasses may rely on. AbstractFileSet is an extremely dangerous
one, as it has certainly seen a lot of extensions outside of our
control.

> TarEntry

Is a special case to me. Ant's tar, zip and bzip2 packages have seeded
Commons Compress and from time to time I try to backport changes from
Compress to Ant - usually only the bugfixes. This may become more
difficult when the code bases start to deviate.

I'd be interested in hearing what kind of changes you'd like to make,
but please take a look at
https://git-wip-us.apache.org/repos/asf?p=commons-compress.git;a=blob;f=src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
?

The class has undergone several changes that haven't been reflected
back, maybe it is mostly an issue of backporting those changes?

Cheers

        Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message