Maas,
Regarding this particular patch, I'd prefer that we don't actually
add "null" to the list of DeploymentFactories, even if it's passed as an
argument to DeploymentFactoryManager.registerDeploymentFactory(). That's
silly, we should just ignore a null. Also, for the register method, it
would be nice to only add the argument if it's not already in the list --
it'll be fairly common for the factory to register in a static initializer
but for the tool to perform the registration manually on top of that
(since the static initializer is only recommended, not required).
Therefore we may as well do what we can to cut down on this redundancy so
you don't have to search an extra-long list on every request.
As for the earlier code, can you add equals() and hashCode()
implementations to all the *Type objects, and add unit tests that compare
them to enforce this? I'm not sure if the Sun impl does it, but it seems
more reasonable to code like:
if(argumentVersion.equals(DConfigBeanVersionType.V1_4)) {...}
So I want to be sure that works, even if we personally decide not
to use that style.
Aaron