On Mar 8, 2010, at 9:58 AM, Mark Phippard wrote:

> On Mon, Mar 8, 2010 at 10:51 AM, Hyrum K. Wright
> <[email protected]> wrote:
>> This means we now need to keep these constructors around for backward 
>> compat, yes?
>> 
>> (Even in cases where the constructor explicitly says something like "This 
>> constructor should only > be called from JNI code."?)
> 
> These classes bleed into the ISVNClient interface so they are
> effectively public and ought to be usable by anyone providing an
> implementation of the interface.  Another way to approach this would
> be to create additional interfaces for anything that is exposed
> directly or indirectly via ISVNClient and move all of our
> implementation classes into a package names "internal".  Then we only
> need to version the interface methods and anyone that uses the
> internal implementation is on their own.

Hmm, yeah.  I realize the classes are public, but I guess I always envisioned 
most of these as "output" parameters which should only be constructed by the 
internals of JavaHL.  Apparently that's not a very accurate vision anymore.

The idea of using interfaces seems like the typical Java solution to this type 
of question, but it also seems like a lot of work.  Using interfaces within 
interfaces does feel like the cleaner solution, though.

-Hyrum

Reply via email to