The somewhat numbing but important work of building a solid software product
What am I doing with Apache Derby / Java DB right now? I am doing
the glamorous work of internationalizing the messages in the client code, while at the same time setting the SQL States approriately for all the SQL Exceptions (currently they are all being set to 'null').
This involves some wonderful drudgery like
- poking through the existing messages for the embedded client and seeing if I can reuse them
- perusing the SQL spec to make sure I use the right SQL State
- running a lint script I wrote to make sure the substitution parameters match the expected parameters
- making sure the message id is loaded correctly
- running tests and fixing master output files on multiple JDKS
and so on and so on.
This is painstaking but important work. This will allow the client messages to be translated, which will make Derby (more) usable by the 98% of the world who doesn't have English as their primary language.
The SQL States seem silly, but applications actually depend on this. Even more so now that JDBC 4 is creating subclasses of SQLException that are defined at least in part by the class of the SQL State for the exception.
In other exciting news, I’ve
also been working on this Wiki
page where we declare the stability of all our interfaces,
inspired by some of the compatibility principles used here in Sun and
now documented in Open
Solaris. More painstaking work, with lots of debate in the community, but I think this is
going to be very valuable and will allow users to build and deploy
their apps on Java DB / Derby with confidence that it won’t
break from under them.