Details of the output generation process
The following diagram shows how IXIASOFT CCMS Output Generator interacts with other components, and how it uses the different configuration files to determine the transformation scenario and execute it.
- In the IXIASOFT CCMS Desktop or IXIASOFT CCMS Web, the user generates an output.
- CCMS Desktop or CCMS Web requests the available output types and user parameters from IXIASOFT CCMS Output Generator over the network.
- The CCMS Output Generator looks up the outputtypes.xml file to get the list of output types defined.
- It also looks up the preprocessors.xml file to get the list of user parameters to display to the user, if any.
- CCMS Output Generator sends all the output types available as well as the user parameters for each output type to CCMS Desktop or CCMS Web.
- CCMS Desktop or CCMS Web retrieves the list of Ditaval files available from IXIASOFT TEXTML Server.
- Generate Output dialog is displayed, with the following information:
- Available output types
- User-defined fields (also called user parameters)
- DITAVAL field
The following diagram shows a sample Generate Output dialog from CCMS Desktop: - Based on the output type selected (either as entered by the user or from the previous Generate Output request), CCMS Desktop or CCMS Web searches the TEXTML Server to retrieve the condition values for this output type (if you are using the deprecated Conditions preprocessor) as well as the values of user parameters of type index, if any.Note: If there are many topics to transform (for example, if the user transforms a map that has a thousand topics), this step can take a few seconds since TEXTML Server must scan each topic to get the list of conditions/parameters as well as the list of the object's children.
- The user selects the user parameters/Ditaval file, if any, and clicks Create.
- If the user entered a Ditaval file, CCMS Desktop or CCMS Web retrieves the content of the Ditaval file from TEXTML Server.
- CCMS Desktop or CCMS Web sends the following information to CCMS Output Generator:
- Output type selected
- Object ID
- Object type
- TEXTML Server, Content Store, and collection that contain the files to transform
- Monitoring port on which the dialog box will listen for updates from CCMS Output Generator (if applicable)
- Content of the Ditaval file (if applicable)
- User parameter values (sent in the buildproperties file)
- Based on the output type specified by the user, CCMS Output Generator looks up the outputtypes.xml file to determine the processors to run for this output type.For example, consider the following outputtypes.xml file:
In this example, the dita2pdf processor is associated to the Dita2Pdf output type.<outputtype name="Dita2Pdf" timeout="60000" system="false"> <preprocessing> <preprocessor name="dita2pdf" /> </preprocessing> <renderer/> </outputtype>
- CCMS Output Generator looks up file inputtypes.xml to determine how to retrieve the object to process from TEXTML Server.
This file specifies the method to run to retrieve the object from the Content Store since each object type is handled differently. For example, if the Generate Output command is specified on a map, then the map and all its containing objects must be retrieved from TEXTML Server. However, if the Generate Output command is specified on a resource, then only that resource is retrieved.
- CCMS Output Generator retrieves from TEXTML Server the files to transform and stores them in memory.
- If conditions (deprecated) were specified by the end user in the Output Generator dialog, the CCMS Output Generator applies these conditions and removes from memory the content that does not meet these conditions.
- CCMS Output Generator saves the files to the job directory.
- CCMS Output Generator looks up the preprocessors.xml file to retrieve the conductor file and target to execute for each processor. For example, the dita2pdf preprocessor has the following configuration in the preprocessors.xml file:
<preprocessor name="dita2pdf" class="com.ixiasoft.outputgenerator.preprocessor.AntProcessor" > <parameters> <system> <parameter name="buildfile" value="/conductor-ot.xml"/> <parameter name="target" value="dita2pdfwrapper"/> <parameter name="clean" value="job_postprocess"/> <parameter name="keep.log.files" value="true"/> </system> </parameters> </preprocessor>
So for this preprocessor, CCMS Output Generator must execute the dita2pdfwrapper target from the conductor-ot.xml file.
- The conductor file loads and executes the target.
- During the execution of the target, the target forks a JVM to run the DITA-OT transformation in it.
When the DITA-OT transformation is completed, the JVM is closed and the control is returned to the target.
- The target executes any post-processing instructions and returns the control to CCMS Output Generator.
- If the
keep.log.files
parameter is set totrue
in the preprocessors.xml file, CCMS Output Generator copies log files from the job directory to the output directory. - CCMS Output Generator zips the contents of the output directory.
- CCMS Output Generator saves the output to the app server.
- CCMS Output Generator returns the zip file to the dialog box.
- CCMS Output Generator executes the target defined in the
<clean>
element in the preprocessors.xml file. By default, this is thejob_postprocess
target. - CCMS Web) The user downloads the output from the My Outputs page.