Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 1.35 KB

File metadata and controls

46 lines (33 loc) · 1.35 KB

Creating uniform scanner/enhancer architecture

Overview

Action handler Mailer Commander Job Event handler
Scanner ControllerByteCodeScanner MailerByteCodeScanner CommanderByteCodeScanner JobByteCodeScanner N/A

Scanner

ControllerByteCodeScanner

  • Check if a class is a controller
  • Check if there are ActionContext field (obsolete)
  • Check @With and @Controller annotations
  • Check eligible methods
    • Check @XxxAction annotations
      • Register route mapping
    • Check interceptor annotations (Before, After, Finally, Catch)
    • Check PropSpec annotation
    • Populate ControllerClassMetaInfo

Miscs

Eligible methods

  • Controller
    • public
    • non-abstract
    • non-constructor

Model classes

ControllerClassMetaInfo
  • Type type
  • Type superType
  • boolean isAbstract
  • String ctxField (obsolete)
  • boolean ctxFieldIsPrivate (obsolete)
  • Set<String> withList
  • List<ActionMethodMetaInfo> actions

ActionMethodMetaInfo