Managed to answer my own question finally. The connector deployer
plan is instantiating two ConnectorModuleBuilder instances, but I had
only added the ModuleBuilderExtension references to the
ClientConnectorBuilder instance. I completely missed the fact the
deployer plan had two different instances specified.
Rick
On 10/7/2010 8:42 AM, Rick McGuire wrote:
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