Framework JSF

for JavaEE environment

Julia will handle JSF bean classes, marking new standard property methods (getters and setters) as entry points and assuming that public fields of such classes will be read and written from the environment.

Required libraries: javax.faces-api.jar

Applicability

This specification gets automatically applied when:

  • the framework of the analysis contains the word java (case insensitive)
  • there exists an annotation that starts with javax.faces.bean


Predicates

Predicates are named conditions that can be used inside other conditions. This framework defines the following predicates:

  • predicate isAccessor is defined as follows:
      (satisfies predicate isGetter or satisfies predicate isSetter)
  • predicate isGetter is defined as follows:
      (whose name starts with get and (whose return type (not is equal to void) and that has a number of parameters is equal to 0))
  • predicate isJSFBeanClass is defined as follows:
      that has an annotation whose name (is equal to javax.faces.bean.ManagedBean or is equal to javax.faces.bean.ReferencedBean)
  • predicate isSetter is defined as follows:
      (whose name starts with set and (whose return type is equal to void and that has a number of parameters is equal to 1))


Specifications on application code

These are conditions that, if satisfied on a given program component, will cause the specified annotations to be placed on such component. These will annotate only program components coming from the application under analysis, and not the libraries. This framework defines the following specifications:

  • annotate any method that satisfies the following:
      (satisfies predicate isAccessor and that is defined in a class satisfies predicate isJSFBeanClass)
    with:
    • com.juliasoft.julia.extraction.EntryPoint
  • annotate any field that satisfies the following:
      (is defined in a class satisfies predicate isJSFBeanClass and has an accessor that is equal to public)
    with:
    • com.juliasoft.julia.extraction.ExternallyRead
    • com.juliasoft.julia.extraction.Injected