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?

Gary

On Apr 15, 2011, at 10:49, "Daniel F. Savarese" <d...@savarese.org> wrote:

>
> Prior to the 3.0 release, I'm trying to review recent code changes and
> test the code in what little spare time I have available.  I noticed that
> ProtocolCommandSupport __commandSupport was moved into SocketClient.
> I disagree with this change.  SocketClient isn't meant to serve only
> Commons Net classes, nor is it meant only for implementing clients for
> IETF protocols; and only a limited number of clients actually need
> to use ProtocolCommandSupport.  Having a private member variable that is
> initially null that must be initialized outside of the base class via calling
> createCommandSupport to initialize is fragile.  That's what constructors
> are for.  Even though Java doesn't have destructors, avoiding initialization
> protocols and using RAII is still a good rule of thumb for resource creation.
>
> A more robust and flexible separation of concerns would place the
> ProtocolCommandSupport member in a ProtocolClient abstract class that
> subclasses SocketClient and initializes __commandSupport (which should
> be protected, not private, obviating the need for getCommandSupport())
> in its constructor.  Then the protocol clients that require
> ProtocolCommandSupport can be changed to subclass ProtocolCommandSupport.
> That won't break compilation of any user code, but breaks binary 
> compatibility.
> Emphasizing binary compatibility at the expense of design doesn't make sense
> to me.  Commons Net is enough of a Rube-Goldberg machine as it is.
>
> Is there some overriding reason why binary compatibility absolutely must
> be maintained or may I open an issue and make the above change?
>
> daniel
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to