One reason writing tests is so gr8 is that it gives the test writer a
feel for how the API is working.  If it is difficult to write a test, or
the test is not flowing, it is possible that the design of the API is
wrong.  That is exactly what happened here.  I was wavering on how to
handle the metadata on a property change in a bean.  I went in one direction.
Then I added some tests.  After adding the tests it became clear to me
that the other direction I was going would be a lot easier to use, and
so now that's the way it is...