Here is a possible solution to the versioned message id problem:

o The message resolver needs two pieces of information from its callers: 1) the actual message ID, 2) the derby version that its caller was compiled at. o The names of built message files need to encode the derby version number. Then the message resolver can look up a version-specific string corresponding to the message id.

In practice this would mean the following:

o All calls to the message resolver can be rototilled with an extra argument which holds a constant, DERBY_VERSION. The value of this constant can be bumped with each release.

o The Derby build can create message files whose names contain the current value of DERBY_VERSION.

So, for example, the build would create m17_en.1012.properties instead of m17_en.properties.

And code would throw exceptions like this:

throw StandardException.newException(SQLState.DERBY_VERSION, SQLState.LANG_SYNTAX_ERROR, feature);

rather than

throw StandardException.newException(SQLState.LANG_SYNTAX_ERROR, feature);

Reply via email to