<?xml version="1.0" encoding="UTF-8"?>
<section id="WebApplicationDescriptorParameters">
  <?dbhtml filename="WebApplicationParameters.html"?>

  <title>Web Application Descriptor Parameters</title>

  <para>RichFaces doesn&apos;t require any parameters to be defined in your web.xml. But the
      <property>RichFaces</property> parameters listed below may help with development and may
    increase the flexibility of RichFaces usage.</para>

  <para>
    <table>
      <title>Initialization Parameters</title>

      <tgroup cols="3">
        <thead>
          <row>
            <entry>Name</entry>

            <entry>Default</entry>

            <entry>Description</entry>
          </row>
        </thead>

        <tbody>

          <row>
            <entry>org.richfaces.SKIN</entry>

            <entry>DEFAULT</entry>

            <entry>Is a name of a skin used in an application. It can be a literal string with a
              skin name, or the <emphasis>
                <property>EL</property>
              </emphasis> expression (<code>#{...}</code>) pointed to a <emphasis>
                <property>String</property>
              </emphasis> property (skin name) or a property of a org.richfaces.framework.skin type.
              Skin in last case, this instance is used as a current skin</entry>
          </row>

          <row>
            <entry>org.richfaces.LoadScriptStrategy</entry>

            <entry>DEFAULT</entry>

            <entry>Defines how the RichFaces script files are loaded to application. Possible values
              are: ALL, DEFAULT, NONE. For more information see <link
                linkend="ScriptsandStylesLoadStrategy">&quot;Scripts and Styles Load
                Strategy&quot;</link>.</entry>
          </row>

          <row>
            <entry>org.richfaces.LoadStyleStrategy</entry>

            <entry>DEFAULT</entry>

            <entry>Defines how the RichFaces style files are loaded to application. Possible values
              are: ALL, DEFAULT, NONE. For more information see <link
                linkend="ScriptsandStylesLoadStrategy">&quot;Scripts and Styles Load
                Strategy&quot;</link>.</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.LOGFILE</entry>

            <entry>none</entry>

            <entry>Is an URL to an application or a container log file (if possible). If this
              parameter is set, content from the given URL is shown on a <emphasis>
                <property>Debug</property>
              </emphasis> error page in the <emphasis>
                <property>iframe</property>
              </emphasis> window</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.VIEW_HANDLERS</entry>

            <entry>none</entry>

            <entry>Is a comma-separated list of custom <emphasis>
                <property>ViewHandler</property>
              </emphasis> instances for inserting in chain. Handlers are inserted BEFORE RichFaces
              viewhandlers in the given order. For example, in facelets application this parameter
              must contain com.sun.facelets.FaceletViewHandler, instead of declaration in
              faces-config.xml</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.CONTROL_COMPONENTS</entry>

            <entry>none</entry>

            <entry>Is a comma-separated list of names for a component as a special control case,
              such as messages bundle loader, alias bean components, etc. Is a type of component got
              by a reflection from the static field <emphasis>
                <property>COMPONENT_TYPE</property>
              </emphasis>. For components with such types encode methods always are called in
              rendering Ajax responses, even if a component isn&apos;t in an updated
            part</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.ENCRYPT_RESOURCE_DATA</entry>

            <entry>false</entry>

            <entry>For generated resources, such as encrypt generation data, it&apos;s encoded
              in the resource URL. For example, URL for an image generated from the <emphasis>
                <property>mediaOutput</property>
              </emphasis> component contains a name of a generation method, since for a hacker
              attack, it is possible to create a request for any JSF baked beans or other
              attributes. To prevent such attacks, set this parameter to &quot;true&quot; in
              critical applications (works with JRE &gt; 1.4 )</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.ENCRYPT_PASSWORD</entry>

            <entry>random</entry>

            <entry>Is a password for encryption of resources data. If isn&apos;t set, a random
              password is used</entry>
          </row>

          <row>
            <entry>org.ajax4jsf.COMPRESS_SCRIPT</entry>
            <entry>true</entry>
            <entry>It doesn&apos;t allow framework to reformat JavaScript files (makes it
              impossible to debug) </entry>
          </row>
          <row>
            <entry>org.ajax4jsf.RESOURCE_URI_PREFIX</entry>
            <entry>none</entry>
            <entry>
              This variable just defines prefix which is added to URIs of generated resources. 
              This prefix designed to handle RichFaces generated resources requests
            </entry>
          </row>
          
          <row>
            <entry>org.ajax4jsf.DEFAULT_EXPIRE</entry>
            <entry>86400</entry>
            <entry>
              Defines in seconds how long streamed back to browser resources can be cached 
            </entry>
          </row>
          
        </tbody>
      </tgroup>
    </table>
  </para>

  <note>
    <title>Note:</title>
    <para><code>org.richfaces.SKIN</code> is used in the same way as <code>org.ajax4jsf.SKIN</code></para>
  </note>

  <para>
    <table>
      <title>org.ajax4jsf.Filter Initialization Parameters</title>

      <tgroup cols="3">
        <thead>
          <row>
            <entry>Name</entry>

            <entry>Default</entry>

            <entry>Description</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry>log4j-init-file</entry>

            <entry>-</entry>

            <entry>Is a path (relative to web application context) to the <emphasis>
                <property>log4j.xml</property>
              </emphasis> configuration file, it can be used to setup per-application custom
            logging</entry>
          </row>

          <row>
            <entry>enable-cache</entry>

            <entry>true</entry>

            <entry>Enable caching of framework-generated resources (JavaScript, CSS, images, etc.).
              For debug purposes development custom JavaScript or Style prevents to use old cached
              data in a browser</entry>
          </row>

          <row>
            <entry>forceparser</entry>

            <entry>true</entry>

            <entry>Force parsing by a filter <emphasis>
                <property>HTML</property>
              </emphasis> syntax checker on any JSF page. If &quot;false&quot;, only Ajax
              responses are parsed to syntax check and conversion to well-formed XML. Setting to
              &quot;false&quot; improves performance, but can provide visual effects on Ajax
              updates</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
  </para>
</section>
