Attaching derby-4932-05-aa-addJDBC4.0versions.diff. This patch adds JDBC 4.0 versions of VTITemplate and StringColumnVTI. I will run regression tests.
The VTITemplate and StringColumnVTI classes implement the JDBC 3.0 version of ResultSet. If you extend these classes, adding just the methods described in their header contract, the resulting classes will not compile on Java 6 because they lack stubs for the new methods introduced by JDBC 4.0. This patch introduces VTITemplate40 and StringColumnVTI40. The new classes provide stubs for the methods introduced by JDBC 4.0.
In addition, now VTITemplate and StringColumnVTI appear only in the JDBC3 version of Derby's public api. The JDBC4 version contains the *40 equivalents.
While I was in there, re-wrote VTITemplate so that the stubs throw a more informative notImplemented() exception.
Note that after this patch is committed, we should hold-off closing this issue. We will want to add a couple methods to the new classes in order to satisfy the JDBC 4.1 (Java 7) contract for ResultSet.
Touches the following files:
These classes extend their JDBC 3.0 counterparts but add the new methods introduced by JDBC 4.0.
Changed the header comments to indicate that these are the JDBC 3.0 versions. Also rewrote VTITemplate to throw more informative exceptions.
Used the appropriate compiler level and libraries for the different JDBC levels.
Made the appropriate classes appear in the JDBC3 and JDBC4 public api.
Added the new *40 classes to the engine jar file.