NOTE: Other base properties are documented here.
Default valuesGlobal 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 |
2000 | 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. [SINCE: 2010-06-30] The default value is changed to 2000 from 600 previously. NOTE: A profiler run shows that 2000 cache entries takes, for fairly typical XPath expressions, about 5 MB of memory. 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.
oxf.pipeline.trace.classNOTE: The property name was renamed from pipeline.trace on 2010-07-06.
| 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 the following implementations of Trace:
org.orbeon.oxf.processor.trace.SystemOutTrace: send the information to the standard output
processor.trace.hostNOTE: This property was removed on 2010-07-06.
| Purpose |
Specify the host name that org.orbeon.oxf.processor.NetworkTrace will send data to. |
| Type |
xs:NMTOKEN |
| Default Value |
localhost |
processor.trace.portNOTE: This property was removed on 2010-07-06.
| 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 rewritingoxf.url-rewriting.service.base-uri
Name: oxf.url-rewriting.service.base-uri Purpose: Specify the base URL for rewriting service URLs. Type: xs:anyURI Subtype: HTTP or HTTPS URL Default: Empty. Rewriting is done against the incoming request.
If this property is set to a non-blank value, URLs are rewritten against it.
Example:
<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 URL 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.] oxf.url-rewriting.platform-paths Name: oxf.url-rewriting.platform-paths Purpose: Set which incoming resource paths are to be considered platform paths (i.e. paths handled by Orbeon Forms as opposed to an application). Subtype: Regular expression. Default: See example below. Note: You don't usually need to modify this property.
<property as="xs:string" name="oxf.url-rewriting.platform-paths" value="^/(ops/|config/|xbl/orbeon/|forms/orbeon/|apps/fr/|xforms-server).*$"/>
This property is used by URL rewriting when versioned resources are enabled. oxf.url-rewriting.app-paths
Name: oxf.url-rewriting.app-paths Purpose: S et which incoming resource paths are to be considered application paths (if they are not platform paths). Subtype: Regular expression. Note: You don't usually need to modify this property.
<property as="xs:string" name="oxf.url-rewriting.app-paths" value="^/(apps|xbl|forms)/.*$"/>
This property is used by URL rewriting when versioned resources are enabled. oxf.url-rewriting.app-prefixoxf.url-rewriting.app-prefix a prefix to incoming resource paths which are neither platform paths nor application paths. xs:string Subtype: Absolute path starting with "/" end not ending with "/".
Default: As of Orbeon Forms 3.8, the empty string. In the future, we plan to make the default /apps. Note: You don't usually need to modify this property. <property as="xs:string" name="oxf.url-rewriting.app-prefix" value="/apps"/>
oxf.url-rewriting.strategy.servlet
oxf.url-rewriting.strategy.servlet pecify which client URL rewriting strategy the Orbeon servlet should use Note: You don't usually need to modify this property.
Changing the default value of servlet to wsrp is useful if you deploy Orbeon as a servlet and interact with it from a proxy portlet. Example:
<property as="xs:string" name="oxf.url-rewriting.strategy.servlet" value="wsrp"/>
oxf.url-rewriting. wsrp.context
oxf.url-rewriting.wsrp.context pecify an optional context path when the wsrp rewriting strategy is used. Subtype: Absolute path starting with "/" end not ending with "/".
Example:
<property as="xs:string" name="oxf.url-rewriting.wsrp.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 |
|