The Composite Rendering Engine is used for rendering Composite Rendition Definitions, which specify a list of Rendition Definitions. The Composite Rendering Engine iterates over the Rendition Definitions sequentially and feeds the output of one definition in as the input of the next definition. The output of the last definition executed is the output of this rendering engine.
For example, a Composite Rendition Definition might be specified which contains a Rendition Definition for reformatting a PDF document to a JPG, followed by a Rendition Definition that resizes an image to a smaller size. This Rendering Engine could process this CompositeRenditionDefinition and use it to create a rendition of a source node containing a PDF document. The output rendition would have been converted to a JPG image with a reduced size.
This Rendering Engine was introduced in version 3.3 as one of the first rendering engines available to the core rendition service. This rendering engine has a name of 'compositeRenderingEngine' and is represented by the class org.alfresco.repo.rendition.executer.CompositeRenderingEngine
The Composite Rendering Engine is intended to process Composite Rendition Definitions and for this reason it can only process rendition definitions of type org.alfresco.service.cmr.rendition.CompositeRenditionDefinition.
The Rendering Engine iterates over each of the sub-definitions specified by the Composite Rendition Definition and processes them in order. The source node is used as the input to the first sub-definition. The output of this sub-definition is then fed in as the input to the next sub-definition. This process is repeated until the last sub-definition is reached. The output fromt he last sub-definition is used as the output for the whole process, i.e. it becomes the rendition of the original source node.
Note that a CompositeRenditionDefinition may be specified as a sub-definition of another CompositeRenditionDefinition, allowing for the creation of Rendition Definition tree structures.
To specify the Base_rendering_engine such as rendition node type, you have to set these to the last rendition definition in the list.