Configuration script is used by the Controller for service provisioning, if it is declared in the package metadata file APP by the -META.xml"//service/provision/configuration-script" element defined by the Specification in section 5.3.2. Configuration Script.
By the moment of script invocation, the following operations are to be performed by the Controller:
Provisioning service operation with configuration script implies that the Controller performs the following steps:
"//provision/configuration-script/script-language" element). What interpreter must be used to run scripts written in a particular language is defined in the aspects, so the Controller must pass the identifier to the Aspects Parser. If the Aspects Parser supports the corresponding aspect, it returns the required interpreter information. Otherwise, the Controller must stop instantiating the application and roll back all the changes it has already done to the server.install argument using the interpreter and passing to the script all the environment variables it prepared on the previous stages of instantiating. What variables must be passed to configuration script is defined by the Specification in section 5.3.2.2. Environment Variables.stdout and stderr streams in order to log the error.The configuration script definition may include structured-output element. In this case a script returns report on erroneous values in the form defined by the Specification. The Controller should catch output stream independently of error stream and process it. For details on script structured output, refer to the 5.3.2.3 Configuration script output section of the Specification.
The Controller should go to instantiating child service (if any) only after all parent services are instantiated in the hosting environment.
In case, URL mapping rules are declared for the service and web access to the service was not configured before configuration script execution, the Controller should go to performing service mapping. For details, refer to the URL Mapping section further in this guide.