The PageRenderDispatcher and ComponentActionDispatcher each have to decipher the component or page being requested. The resolution of the associated class in each case is essentially the same. I'm working (again) on a transparent access control system that must do the same thing, so I've basically copy/pasted this logic. It would seem to make sense (and also be convenient for me) to centralize this logic somewhere - probably as a static method. This would also insulate code like mine against breakage.