Title: List Chain The ListChain creates the ExecutionPlan based on the exact order of the configured [EnhancementEngines](../engines). This provides users with a simple possibility to configure the exact oder in which the referenced EnhancementEngines are called during the enhancement process of a content item. However the ListChain can not support parallel execution of engines - a considerable disadvantage in contrast to the [GraphChain](graphchain.html). A typical usage scenario would be that users start of with configuring a ListChain and later optimize the execution by migrating functional configuration to a [GraphChain](graphchain.html). ## Configuration The property "stanbol.enhancer.chain.list.enginelist" is used to provide the list of engine names. This configuration MUST BE parsed as an array as string because the ordering of the configured entries is essential for the configuration. In addition it is possible to define engines as optional. This allows to specify that the enhancement process should not fail if an engine is not active or fails while processing a content item. The syntax to define an engine as optional is as follows below _(Both variants make the execution of the engine with the name optional.)_: :::text ;optional ;optional=true The following figure shows the configuration dialog for ListChains as provided by the Apache Felix Web Console. ![Configuration dialog for the ListChain](enhancer-listchain-config.png "Screenshot of the configuration dialog for a ListChain with required and optional engines") It is also possible to configure a ListChain by directly installing a configuration with the name "{classname}-{configName}.config". Note that the {configName} needs not to be the same as the name of the chain. The {configName} is just used by the OSGI environment to distinguish different configurations for {classname}. To create the same configuration as in the above screenshot the file would need to look like this: :::properties stanbol.enhancer.chain.name="list" stanbol.enhancer.chain.list.enginelist=["metaxa;optional","langid","ner","dbpediaLinking"] ## Calculation of the ExecutionPlan The ExecutionPlan is created based on the exact order of the [EnhancementEngines](../engines) provided by the "stanbol.enhancer.chain.list.enginelist" property. The configuration MUST contain at least a single engine. In addition no engine MUST be mentioned twice.