In my testing I have seen a need for performing upgrade testing from local/internal non-public "versions" of Derby.
That is, having local/internal changes to some older branch and allowing upgrade testing from this (not yet public) version.
One solution is to locally modify the 'VERSIONS' table of the upgradetests '_Suite', but this means modifying the source for each such case.
A more flexible solution is to override the default versions (given in 'VERSIONS') by using a property giving a file which lists the versions to test upgrade from. The location to local version jars can currently be given by the 'derbyTesting.oldReleasePath' property. The list of versions could be given by a property 'derbyTesting.oldVersionsPath'.
This will also easily allow us to skip testing upgrade from a specific version. (This can already be done by not having the version jars available.)
The list of versions given via the property should be used whether versions (jars) are available locally (as given by the 'derbyTesting.oldReleasePath' property or fetched from the Apache Derby svn repository ('http://svn.apache.org/repos/asf/db/derby/jars').
I have a patch for this which I will submit for review.