Hey Carlin,
I think what might be better would be to make a
FormBeanAnnotationProcessorFactory in
compiler-apt/org/apache/beehive/netui/compiler/apt, and make it
responsible for the form bean annotation (you'd need to remove that
annotation from the list of supported annotations in
PageFlowAnnotationProcessorFactory). FBAPF could then simply return a
FormBeanCoreAnnotationProcessorFactory -- which already exists -- in its
getCoreProcessorFor(). I honestly cannot remember why I didn't do that
-- sorry.
If it turns out that this doesn't work for some reason, you could also
roll the functionality from FormBeanCoreAnnotationProcessor into
PageFlowCoreAnnotationProcessor (and to delete the former).
In either case, you end up with standalone checking form bean classes,
which is nicer because you don't have to worry about multiple
PageFlowCheckers triggering checking on the same external form bean
class, and it's just cleaner to have it be standalone.
All that said, I didn't wire it up in the first place, so if you run
into any difficulties let me know -- it's possible there's something I'm
missing here.
Rich
Carlin Rogers wrote:
I'm taking a look at BEEHIVE-1127 and wanted to share some thoughts about
ensuring the annotation processing of validatable bean properties
declared
in an external form bean class during the check() phase.
The current implementation for processing of the Controller
annotations does
not process external form bean during the check() phase of the
TwoPhaseCoreAnnotationProcessor. During the Controller annotation
processing, FlowControllerChecker.onCheck() creates the
FormBeanChecker and
then during the onCheckInternal() uses it to check ValidatableProperty
annotations on inner classes only.
I'd like to modify FlowControllerChecker.checkMethod() (for action
grammar
checking) to also look at the parameter of an action and check for
validation rules. The change would only use the FormBeanChecker on the
parameter class if it is a ClassDeclaration without a declaring type
(so we
don't re-check an inner class). Does this sound right? Anyone have some
additional thoughts?
Rich, do you have some input on this AP change?
Thanks,
Carlin