You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

projectdoc Toolbox

Enforces to treat a property with dynamic value as property.

Identifier
force-property
Since
5.2

Since version 5.2 of the projectdoc Toolbox all properties with dynamic values are automatically flagged with no-property when in strict or block mode. In case a property should be treated as property despite the dynamic value, it has to be marked with the force-property control.

Prior to version 5.2 there where no no-properties. Properties should not use dynamic values.

Dynamic Values Handling

The value of a property that is dynamic is dependent on the rendering time.

Typically property values must be rendered at the time a page is stored and must not change due to external events.  A property may reference another property. If a referenced property changes, the document with the reference is information and the property value is updated accordingly. Changes only happen when a document is stored. A dynamic value does not reference another property value, but builds result sets at request time based on queries or fetches information from other resources then projectdoc document. The update mechanism is not applied to dynamic values, therefore dynamic values represent the value at the time they where stored and this probably out-of-date value is rendered at request time.

However there are use cases, where dynamic property values can be used. But special considerations need to be made: the property should probably not be indexed (noindex) and always be rendered at request time (in other words: not be cached, no-render-cache). Or it may not even be considered to be a property at all (no-property).

The following modes are available to control how properties with dynamic values are handled.

ModeDescription
allow

No restriction. Dynamic values are allowed. Users are responsible to use them correctly.

This mode is used for backward compatibility.

lenient

Dynamic values are allowed, and if proper control are not set, then no-propertyis assumed.

The following controls are considered proper:

Health checks will signal the use of deprecated features of macros considered to be dynamic.

This mode may be selected to allow users to use dynamic values.

strict

Dynamic values are allowed, and if proper control are not set, then no-propertyis assumed.

The following controls are considered proper:

This mode will be the default mode for the next major version of the projectdoc Toolbox.

explicit

Dynamic values are allowed, if proper controls are set:

The implicit flagging of no-property when a dynamic property is encountered, is not allowed.

This mode should only be used for testing the health of documents, not as a runtime mode.

block

No dynamic value is allowed.

This mode may be helpful to find all locations of dynamic values with a health check. Not recommended as a runtime mode.

The mode is defined by the system property de.smartics.projectdoc.dynamicValues. This is currently considered an experimental feature.

References

Related document property controls.

no-property
Controls whether a line in a document properties marker macro is actually a property.
noindex
Prevents the property from being indexed with Lucene. A property marked with this control will neither be added with a keyword nor added to the body of the document as text.
no-render-cache
Controls whether or not a rendered property value can be cached.
  • No labels