StaplerProxyallows delegating the processing of a URL to another object. So, for
getFoo()returns an object
getTarget()method, Stapler will call
x.getTarget()and continue using that to process the rest of the URL (
bar). This has the highest priority among all possible URL processing options.
StaplerFallbackallows delegating the processing of a URL to another object, similar to
StaplerProxy, but has the lowest priority among all possible URL processing options.
See stapler documentation for more about how it binds Java object model For more information on how Stapler binds (or staples) a Java Object Model to a URL hierarchy., see the Stapler Reference Documentation
Jenkins' model objects have multiple "views" that are used to render HTML pages about each object. Jenkins uses Jelly as the view technology (which is somewhat similar to JSP+JSTL.) Views are really like methods , and each of them work against a particular class. So the views are organized according to classes that they belong to, just like methods are organized according to classes that they belong to. Again, see the stapler Stapler project for more about how this works.
Jenkins uses the file system to store its data. Directories are created inside
$JENKINS_HOME in a way that models the object model structure. Some data, like console output, are stored just as plain text file. Some , some are stored in as Java property file formatfiles. But the majority of the structured data, such as how a project is configured, or various records of the build, are persisted by using XStream.