RichFaces 4.0 ALPHA2 CDK Status

Version 11

    Current Status.

    CDK

    All parts of CDK areCdkGeneratorArchitecture that are stored in the single 'context' object, therefore it is easy to configure particular build. The same context also keeps project settings ( source and output folders, tag library url, source files ). All work are done in the Annotation Processor, so it would be used as Maven plugin and as APT from IDE.

    Annotations processor:

    Currently, the component, behavior, converter and renderer classes annotations are parsed,  JavaDoc comments are stored as 'description' property hence we have a single point for library documentation. Standard JSF attributes were exported as faces-config fragments that used from APT and may be included into xml configuration as well. Code has been refactored to make new processors for additional JSF classes as easy as possible.

    To be done:

    Validator, FacesEvent, class annotations, test and tag information.

    Faces-config.xml parser.

    Faces-config.xml parser works with 'component', 'converter','behavior' and 'render-kit' sections, with attributes and extensions tags. It configured with xinclude support. The same parser is used to include '@Attributes' references and standard JSF components definitions, therefore they could be used from annotations and included into faces-config.xml by xinclude directive. Generator merges information from both sources with highest precedence for xml.

    Generation of output files.

    Component class builder is implemented as FreeMarker template parser. Faces-config.xml file generator implemented by JAXB marshaller.


    Template compiler:

    http://jira.jboss.org/jira/browse/RF-7732

    Template compiler processes template file and generates Java code.

    The following things are supported:

    • HTML tags with attributes
    • CDK tags: if/choose/when/otherwise/object/call/body
    • Composite tags interface/implementation
    • EL expressions supported by JBoss EL (except projections)

     

    Maven plugin:

    Maven plugin runs whole build project, using Maven CDK plugin configuration. Two interration tests have been created to test annotations-based and xml configurations.

    Near Term Tasks

    CDK

     

    Longer Term Tasks

     

    • Templates compiler
      • Reporting of compilation errors via CDK (slipped for A2) RF-8308
      • Handling for template-declared attributes RF-8309
      • Support for disabled components RF-8310
      • Implement better support for template code reuse (either via XInclude or analogs for Facelets templating tags) (XInclude is there, slipped for A2) RF-8311
      • ForEach tag support (slipped for A2) RF-8312

     

    Requirements for ALPHA2

    • Documentation should be generated

     

     

    Estimation on Effort and Time


    • Templates compiler:
      • Optimized version of pass through attributes rendering - 3-4 days
      • Unit tests for code generation - 2 days
      • Review code & fix TODOs - 1-2 days
      • Wiki documentation update - 2 days
      • Reporting of compilation errors via CDK - 2 days
      • Handling for template-declared attributes - 2-3 days
      • Support for disabled components - 2 days
      • Implement better support for template code reuse (either via XInclude or analogs for Facelets templating tags)
        • XInclude - already there
        • Facelets templating - 7-10 days
      • ForEach tag support - 1.5 days