commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <>
Subject [EMAIL] binary incompatibilities in 1.3
Date Wed, 11 Jan 2012 03:43:13 GMT
I've just done a quick trawl through the clirr report comparing trunk with 1.2

I think all the incompatibilities can be fixed, provided that some
compromises are made.

There are about 25 constants that were removed from the Mail class
These changes are binary compatible, because compilers are required to
inline constants.
I think they may even be source compatible, because they have been
moved to an interface that is implemented by the Mail class.
Or they could just be moved back to the Mail class - generally it's
not a good idea to define constants in interfaces, and the interface
is not implemented/used elsewhere AFAICT.

The method MultiPartEmail#addPart(String, String) was changed to
return MultiPartEmail rather than Email. Is that absolutely necessary?
It avoids a cast, but is binary incompatible.

EMAIL-76 changed all the setter methods to return this instead of void.
Unfortunately, that is binary incompatible.
There is no work-round - apart from creating new method names.
Is it really worth breaking binary compat. for the slight
simplification this brings?

Perhaps that enhancement request could be deferred until there's a
more compelling reason to break binary compatibiltity? There are still
a lot of other useful fixed and enhancements.

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

View raw message