persistence@glassfish.java.net

SQLAnywherePlatform naming

From: Tom Ware <tom.ware_at_oracle.com>
Date: Tue, 06 Mar 2007 10:43:59 -0500

Hi All,

  Markus Karg has been nice enough to provide a new implementation of a
TopLink Essentials DatabasePlatform for SQLAnywhere that I intend to
check-in soon.

  I have a minor dilema.

  For some historical reasons, the current platform is called
SQLAnyWherePlatform (with an upper case 'W'). Ideally the platform
would be called SQLAnywherePlatform (with a lower case 'w' ). If we
were going to make a change this would seem to be the ideal time. The
issue with simply making the change is that currently we do not
auto-detect SQLAnywhere and therefore anyone using the old platform
would have to explicitly specify it - meaning a change breaks backward
compatibility for them. In general, I believe it is quite important to
maintain backward compatibility.

  My initial plan was to deprecate the old SQLAnyWherePlatform and
create a new SQLAnywherePlatform in the same package. Unfortunately,
that would cause problems for anyone developing on Windows since Windows
is not case sensitive and as a result the source files would be the same
as far as Windows is concerned.

  The following seem to be the options

1. Rename SQLAnyWherePlatform to SQLAnywherePlatform and somehow inform
the user base
 - this is the cleanest solution if you forget about current users
 - breaks backward compatibility
2. Deprecate SQLAnyWherePlatform and create a new SQLAnywherePlatform in
a new ianywhere subpackage
 - backward compatibility is maintained
 - does not follow the current pattern of package usage for
DatabasePlatforms.
3. Keep the name as SQLAnyWherePlatform and update the contents
 - backward compatibility is maintained
 - platform name is not completely accurate

  Does anyone have either an opinion about the best option, or another
suggestion?

Thanks in advance,
Tom