Dennis Reedy wrote:
On Feb 28, 2011, at 1247AM, Patricia Shanahan wrote:
How would you propose handling a case like outrigger.FastList?
It is package access only, so changing its interface to the rest of outrigger
did not affect any public API. Several classes needed to be changed to handle
the interface change.
If I understand your question correctly, I think it should be fairly
straightforward. Following module conventions, we would have a structure that
would look (something) like:
outrigger/src/main/java/org/apache/river/outrigger
outrigger/src/test/java/org/apache/river/outrigger
The test (or benchmark) code would be in the same package, just in a different
directory. You would be able to accommodate your package access only
requirement.
I don't see how that answers the problem of a possible intra-package
interface change that needs to be benchmarked *before* the changes to
the rest of the package that would be needed to integrate the class
under test with the rest of what would be its package if it wins the
benchmark.
If I had initially named my new FastList implementation
"com.sun.jini.outrigger.FastList" I could not have compiled outrigger in
its presence. It is not a drop-in replacement for the old FastList.
If it had turned out to be slower than the existing FastList I would
still have wanted to preserve it, and the relevant benchmark, because of
the possibility that future java.util.concurrent changes would make it
better. On the other hand, I would not have done the changes to the rest
of outrigger.
Patricia