{scrollbar}

When learning JSF, there's nothing quite like looking at a real implementation.

Here's a suggested list of classes/methods to look at when trying to get to grips with how JSF and MyFaces actually works, together with a brief description of the typical behaviour of interesting methods.

Note that the descriptions below describe typical behaviour of the code. There are all sorts of overrides, configurable behaviours and special cases that can occur; see the real implementation for the full details - or read the O'Reilly book which takes 570 pages to describe this process (smile)

javax.faces.webapp.FacesServlet
org.apache.myfaces.lifecycle.LifecycleImpl:
javax.faces.component.UIViewRoot:
javax.faces.component.UIComponentBase:
org.apache.myfaces.renderkit.html.HtmlRenderKitImpl:
xml <render-kit> <render-kit-id>some-id</render-kit-id> <renderer> <component-family>javax.faces.Input</component-family> <renderer-type>org.apache.myfaces.InputSuggest</renderer-type> <renderer-class>org.apache.myfaces.custom.suggest.InputSuggestRenderer</renderer-class> </renderer>
javax.faces.webapp.UIComponentTag:
org.apache.myfaces.application.ApplicationImpl:
xml <component-type>... <component-class>...
javax.faces.component.UIInput: