Skip to content

Injectable-artifacts table omits ViewHandler and ELResolver #2180

Description

@BalusC

Found while resurrecting TCK tests lost during Mojarra 3.0→4.0 transition — specifically Spec763IT, the resurrection of #763 ("classes loaded from faces-config.xml are injectable").

The table Jakarta Faces Artifacts Eligible for Injection in ExpressionLanguageFacility.adocJakarta Faces Managed Classes and Jakarta EE Annotations) omits two artifacts that are injectable in practice:

  • jakarta.faces.application.ViewHandler
  • jakarta.el.ELResolver

Both were injectable in JSR-314 and Mojarra still injects them today: ApplicationConfigProcessor.setViewHandler(...) and addELResolver(...) create the instance with performInjection=true and register it for @PreDestroy. Original support landed in javaee/mojarra:

  • javaee/mojarra@7a6f863Make it so classes loaded from the faces-config.xml are injectable
  • javaee/mojarra@5bc213eVerify that ViewHandler, StateManager, SystemEventListener, NavigationHandler, ELResolver, ActionListener and ResourceHandler are injectable

The omission looks like an oversight in the Faces 4.0 DocBook→asciidoc conversion (d7fc180): the table still lists the now heavily @Deprecated(forRemoval=true) StateManager while dropping the fully-active ViewHandler.

Request: re-add ViewHandler (and clarify/confirm ELResolver) in the eligible-for-injection table.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions