I'm working on implementing bean validation support for the connectors in Geronimo 3.0. This has involved changes to both the connector component and Geronimo. I've attached a couple of patches patches to the Jira for this enhancement showing my progress so far:

https://issues.apache.org/jira/browse/GERONIMO-5230

Basically, each of the javabean types that require validation have had their corresponding wrapper classes enhanced to support injection of a ValidatorFactory instance and optionally validate the wrappered objects before the first use.

A big part of this was changes to the ConnectorModuleBuilder to add a reference to the ValidatorFactoryGBean for the module in question. In order for this to work, a ValidatorFactoryGBean instance needs to be added to the module by the BValModuleBuilderExtension. Currently, the ConnectorModuleBuilder did not support builder extensions, but my patch has added this support.

Everything is building cleanly, but when I start the server, the ManagedConnectorFactory GBean cannot be initialized because it can't find the reference to the ValidatorFactory instance. Looking at the serialized config for the system-database car, the required ValidatorFactory GBean does appear to be missing.

Debugging this further in the build for the system-database plugin, I'm seeing something that I can't explain. I'm seeing the following events occurring during this build:

1)  The BValModuleBuilderExtension is created (expected).
2) The ConnectorModuleBuilder is created, but NO ModuleBuilderExtensions are passed in to the constructor (not expected). 3) A second ConnectorModuleBuilder instance is created. This instance is passed a collection containing the single BValModuleBuilderExtension instance (this was what was expected, except for the fact this a second instance). 4) The first ConnectorModuleBuilder instance is called to process the module. Since this instance does not have a reference to the BValModuleBuilderExtension, the ValidatorFactoryGBean instance is not getting added to the configuration.

So, I'm now at a point where I'm stuck. So far, I've not been able to figure out why there are two instances of the ConnectorModuleBuilder getting created and why the first instance is not picking up the BValModuleBuilderExtension. I'm guessing I'm missing something simple here, but I'm a bit stumped on how to debug this further. Can anybody offer an assistance here?

Rick


Reply via email to