commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel F. Savarese" <>
Subject Re: [net] binary compatibility be damned
Date Fri, 15 Apr 2011 19:34:39 GMT

In message <-2240415941472220542@unknownmsgid>, Gary Gregory writes:
>If your are going to break binary compatibility then a major release
>is the time to do it. Is there any question that the design is wrong?

I got the impression the change was made the way it was solely to work
around binary compatibility issues (hence the provocative thread subject),
not because it was believed to be the optimal approach.  From that
perspective, it's not "wrong."  None of this stuff is ever really right
or wrong; it just involves a different set of trade-offs.  Since the
Commons Net class structure is one of using classes primarily as modules
containing related code for reuse (i.e., instantiable namespaces), not
one of using classes for polymorphic generic programming, I think it best
for maintenance and code understanding purposes to create a new module/class
isolating common code for "protocol command clients" instead of placing it
inside of the more general SocketClient. My real preference would be to use
delegation, but Java doesn't have a way to automatically delegate to a
member and manual delegation results in the code duplication that
motivated the refactoring.

If we can break binary compatibility, since this is a major release,
this would be a good time to do a thorough code review.  I know sebb's
been doing a lot of that, but the more eyes the better.


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

View raw message