> Are there any other areas where you can get multiple implementations =
of the
> same Java interface from different suppliers? If so, how do they solve =
the
> version control problem? Or have we achieved a first?
One that comes quickly to mind is JDBC, where each driver implements the =
same interfaces. In JDBC 2.0, Sun has added methods to existing =
interfaces but has not (as far as I can tell) changed any 1.0 methods. =
They have also added completely new interfaces and packages.
The version control problem is solved by two mechanisms:
* 100% backwards compatibility
* The ability of the application to query the version of the spec to =
which a given driver conforms.
The first point solves the problem of 1.0 applications working with 2.0 =
drivers. Because 2.0 is a superset of 1.0, a 2.0 driver necessarily =
implements everything a 1.0 application uses.
The second point solves the problem of 2.0 applications working with 1.0 =
drivers. The application queries the version of the spec supported by a =
driver and then only uses the functionality in the supported version. =
If the application requires 2.0 functionality, it simply refuses to work =
with a 1.0 driver.
-- Ron Bourret