Generified abstract optimistic locking collection versioning testing