Comments? Feedback?

This wiki does not yet support public comments (a limitation of Google Sites), so we encourage you to post your comments on Twitter by responding to @orbeon.

Recent site activity

Configuration Properties - Base

NOTE: Other base properties are documented here.

Global properties

oxf.log4j-config

Purpose Configures the logging system
Type xs:anyURI
Default Value The logging system not initialized with a warning if this property is not present.

Orbeon Forms uses the log4j logging framework. In Orbeon Forms, log4j is configured with an XML file. Here is a sample log4j configuration:

<log4j:configuration xmlns:log4j="log4j"><appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"><param name="Target" value="System.out"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/></layout></appender><catagory name="org.orbeon.oxf.processor.DebugProcessor"><priority value="info"/></catagory><root><priority value="error"/><appender-ref ref="ConsoleAppender"/></root></log4j:configuration>

If this property is not set, the log4j initialization is skipped. This is useful if another subsystem of your application has already initialized log4j prior to the loading of Orbeon Forms.

oxf.cache.size

Purpose Setup the size of the Orbeon Forms cache
Type xs:integer
Default Value 500

Orbeon Forms uses an efficient caching system. Orbeon Forms automatically determines what can be cached and when to expire objects. The cache has a default size of 200, meaning that it can hold 200 objects. This size is reasonable for most applications. A bigger cache tends to make the application faster, but it uses more memory. To tune the cache size, see the suggestions in the Performance and Tuning section.

oxf.cache.xpath.size

Purpose Setup the size of the Orbeon Forms XPath cache
Type xs:integer
Default Value 600

This property configures the maximum number of compiled XPath expressions to keep in the XPath cache. To tune the cache size, see the suggestions in the Performance and Tuning section.

oxf.validation.processor

Purpose Controls the automatic processor validation
Type xs:boolean
Default Value Enabled

Many processors validate their configuration input with a schema. This validation is automatic and allows meaningful error reporting. To potentially improve the performance of the application, validation can be disabled in production environments. It is however strongly discouraged to do so, as validation can highly contribute to the robustness of the application.

oxf.validation.user

Purpose Controls user-defined validation
Type boolean
Default Value Enabled

User-defined validation is activated in the XML Pipeline Definition Language with the attributes schema-href and schema-uri. To potentially improve the performance of the application, validation can be disabled in production environments. It is however strongly discouraged to do so, as validation can highly contribute to the robustness of the application.

oxf.prologue

Purpose Defines Orbeon Forms processors
Type xs:anyURI
Default Value A default prologue is loaded automatically

Loads a Orbeon Forms prologue file, where processors are declared. Orbeon Forms is bundled with a default prologue file containing all processors. You can create processors (see the processor API) and declare them in a custom prologue. The custom prologue doesn't replace, but completes the default prologue. It is possible to override a default processor with a custom implementation by binding it to the same URI as the default processor. The following example shows a simple custom prologue declaring an hypothetical processor:

<processors><processor name="oxf:myprocessor"><class name="com.company.oxf.MyProcessor"/></processor></processors>

sax.inspection

Purpose Enable inspection SAX events
Type xs:boolean
Default Value false

SAX is the underlying mechanism in Orbeon Forms by which processors receive and generate XML data. Given only the constraints of the SAX API, it is possible for a processor to generate an invalid sequence of SAX events. Another processor that receives that invalid sequence of events may or may not be able to deal with it without throwing an exception. Some processors try to process invalid SAX events, while others throw exceptions. This means that when a processor generating an invalid sequence of SAX events is used in a pipeline, the problem might go unnoticed, or it might cause some other processor downstream to throw an exception.

To deal more efficiently with those cases, the sax.inspection property can be set to true. When it is set to true, the pipeline engine checks the outputs of every processor at runtime and makes sure that valid SAX events are generated. When an error is detected, an exception is thrown right away, with information about the processor that generated the invalid SAX events.

There is a performance penalty for enabling SAX events inspection. So this property should not be enabled on a production system.

processor.trace

Purpose Specify the name of a class that implements the interface org.orbeon.oxf.pipeline.api.PipelineContext.Trace.
Type xs:NCName
Default Value None

Orbeon Forms ships with two implementations of Trace:

  • NetworkTrace sends profiling information to Studio. Studio then displays the data in the trace views. When using NetworkTrace, you also need to specify the host and port to which the information is sent to with the processor.trace.host and processor.trace.port properties.
  • StdOutTrace simply dumps profiling information to standard output.

processor.trace.host

Purpose Specify the host name that org.orbeon.oxf.processor.NetworkTrace will send data to.
Type xs:NMTOKEN
Default Value localhost

processor.trace.port

Purpose Specify the port that org.orbeon.oxf.processor.NetworkTrace will send data to.
Type xs:nonNegativeInteger
Default Value 9191

XSLT output location mode 

During development, the following XSLT transformer configuration helps with line number errors. The following values are allowed:
  • none: no XSLT output line number information provided. This is the default, and recommended for deployment.
  • dumb: minimal XSLT output line number information provided.
  • smart: maximal XSLT output line number information provided. This is recommended for development.

<property as="xs:string" processor-name="oxf:builtin-saxon" name="location-mode" value="none"/>
<property as="xs:string" processor-name="oxf:unsafe-builtin-saxon" name="location-mode" value="none"/>
<!-- This property was used prior to January 2010 builds -->
<property as="xs:string" processor-name="oxf:saxon8" name="location-mode" value="none"/>

HTTP client proxy setup

To configure an HTTP proxy to be used for all the HTTP connections established by Orbeon Forms, add the following two properties:

<property as="xs:string"  name="oxf.http.proxy.host" value="localhost"/>
<property as="xs:integer" name="oxf.http.proxy.port" value="8090"/>

By default, those properties are commented and Orbeon Forms doesn't use a proxy. Some of the use cases where you will want to define a proxy include:
  • Your network setup requires you to go through a proxy.
  • You would like see what goes through HTTP by using a tool that acts as an HTTP proxy, such as Apache TCPMon.

HTTP client state setup

When Orbeon Forms performs XForms submissions, or retrieves documents in XPL over HTTP, it has the ability to keep state across requests. State information includes:
  • Cookies, including session cookies
  • Credentials / authentication information, e.g. HTTP Basic authentication
By default, these settings are stored in the current user session:

<property as="xs:string"  name="oxf.http.state" value="session"/>

You can change the property to the following values:
  • none: state is not stored at all between HTTP requests
  • request: state is stored for the duration of an HTTP request from the user's browser
  • session: state is stored for the duration of the user's session
  • application: state is stored for the duration of the web application's life
NOTE: This behavior is new since July 2009 builds. Before such builds, the default was none as this feature was not implemented.

This setting impacts the following HTTP requests:
  • Loading of XForms instances with xforms:instance/@src
  • Requests issued by xforms:submission
  • Requests issued by HTTP URLs in XPL pipelines
  • Requests issued by oxf:url-generator in XPL pipelines
  • Requests issued by oxf:xhtml-to-pdf when requesting external resources such as CSS, JavaScript, and image files
In fact, any HTTP request from Orbeon Forms should be handled by the above mechanisms. If you find an exception, please let Orbeon know on ops-users!

NOTE: These settings only control how the HTTP client in Orbeon Forms handles cookies and credentials.

HTTP headers forwarding

When Orbeon Forms performs XForms submissions, or retrieves documents in XPL over HTTP, it has the ability to forward incoming HTTP headers. For example, if you want to forward the "Authorization" header to your services:

<property as="xs:string" name="oxf.http.forward-headers" value="Authorization"/>

NOTE: For security reasons, you should be careful with header forwarding, as this might cause non trusted services to receive client headers.

URL rewriting

This property specifies the base URI for rewriting service URLs. By default it is blank and rewriting is done against the incoming request. If this property is set to a non-blank value, URLs are rewritten against it:

<property as="xs:anyURI" name="oxf.url-rewriting.service.base-uri" value="http://localhost:8080/orbeon"/>


Usually Orbeon Forms will use the host, port, and context name as seen by the browser, e.g. http://www.mycompany.com/orbeon, to infer how to reach itself when calling service URLs. In some cases, this needs to be changed e.g..:
  • You have a web server (e.g. Apache httpd) which forwards requests to the application server (e.g. Tomcat).
  • The application server cannot connect to the web server because of a specific network configuration.
In those cases, the application server will try to connect to http://www.mycompany.com/orbeon/... which isn't reachable. To solve those, you can use the oxf.url-rewriting.service.base-uri property to provide a URI for the application server which can be reached by the application server, for instance: http://localhost:8080/orbeon.

[TODO: Explain where this property is used.]

The following property specifies which client URL rewriting strategy the Orbeon servlet should use. Changing the default value of servlet to portlet2 is only useful if you deploy Orbeon as a servlet and interact with it from a proxy portlet.

<property as="xs:string" name="oxf.url-rewriting.strategy.servlet" value="servlet"/>

The following specifies an optional context path when the portlet2 rewriting strategy is used:

<property as="xs:string" name="oxf.url-rewriting.portlet2.context" value=""/>

Epilogue and theme properties

oxf.epilogue.theme

Name oxf.epilogue.theme
Purpose Specifies the theme stylesheet. This can be overwritten for a given app by placing a file theme.xsl inside the app directory.
Type xs:anyURI
Default Value oxf:/config/theme-examples.xsl

 oxf.epilogue.theme.embeddable

Name oxf.epilogue.theme.embeddable
Purpose Specifies the theme stylesheet to use when within a portlet or in embeddable mode. This can be overwritten for a given app by placing a file theme-embeddable.xsl inside the app directory.
Type xs:anyURI
Default Value oxf:/config/theme-portlet-examples.xsl

oxf.epilogue.theme.renderer

Name oxf.epilogue.theme.renderer
Purpose Specifies the theme stylesheet to use when using the XForms filter, whether in integrated or separate deployment mode. By default, this is a plain theme.
Type xs:anyURI
Default Value oxf:/config/theme-portlet-examples.xsl

oxf.epilogue.theme.error

Name oxf.epilogue.theme.error
Purpose Specifies the theme stylesheet to use on the error page
Type xs:anyURI
Default Value oxf:/config/theme-error.xsl

oxf.epilogue.use-theme

Name oxf.epilogue.use-theme
Purpose Specifies whether a theme stylesheet must be applied
Type xs:boolean
Default Value true

oxf.epilogue.output-xhtml

Name oxf.epilogue.output-xhtml
Purpose Whether to output XHTML to the browser or not
Type xs:boolean
Default Value false

oxf.epilogue.renderer-rewrite

Name oxf.epilogue.renderer-rewrite
Purpose Whether the XForms renderer used in separate deployment must rewrite URLs
Type xs:boolean
Default Value false

oxf.epilogue.process-svg

Name oxf.epilogue.process-svg
Purpose Whether SVG content must be converted server-side to images
Type xs:boolean
Default Value true

oxf.epilogue.xforms.widgets

Name oxf.epilogue.xforms.widgets
Purpose Whether the XForms widgets XSLT stylesheet must be applied
Type xs:boolean
Default Value true