Tom: I take your other points, but as to the placement of driver constants (and I'm only talking about driver constants here), you mention:
********** No, the thing is that this is info specific to this platform, so I would expect it to be defined somewhere within the platform, not somewhere else (principle of least surprise). ********** If this is true, then why define any constants at all in PlatformInfo (again, I mentioned that consistency is one of my big things)? OK, it may be that some driver classes legitimately serve more than one database (I think of jTDS, which serves both SQL Server and Sybase). However, in those cases, we can't guess the database from the driver anyway, and the constant is never used, so why define it at all? And surely PlatformUtils.JDBC_DRIVER_DATADIRECT_DB2 is better defined in the DB2 platform, by your own argument. This is a driver specific to the DB2 platform, and so you "would expect it to be defined somewhere within the platform." The fact that DataDirect has a number of drivers doesn't tie those drivers together in a programmatic or usage sense. In that way, you can see at a glance the drivers that are covered for each specific platform in one place (and of course, a note should probably be inserted regarding the jTDS driver in both the SQL Server and Sybase Platform implementations to indicate why it doesn't appear, since presumably it is otherwise useable - I used it without difficulty in my first tests of the tool). I only mention this with some stick-to-it-ivness (as my grandmother would have said) because I found it confusing at the beginning, so if principle of least surprise is to govern, one only asks that it govern consistently, if nothing else to help the surprisable, like me. I remain interested in helping in any function in which I might be able to do so. Best wishes, David