Advanced Features Related to Solution Import from Servoy Admin Page
During solution import from the Servoy Admin Page, modules with certain name patterns are handled in a special way. Modules whose names start with "before_import" are handled as pre-import hooks. Their onOpen
event handlers are executed before the solution is actually imported. Similarly, modules whose names start with "after_import" are handled as post-import hooks. Their onOpen
event handles are executed after the solution is actually imported.
If you have several modules that start with "before_import" or "after_import", they will be all handled in this way, but no handling order is guaranteed. It is recommended that you have at most one pre-import and at most one post-import hook in your exported solutions.
While the onOpen
event handlers of pre-import and post-import hooks are being executed, any output printed with application.output
will be redirected to the import log, which you can see in the Servoy Admin Page.
A simple example
Suppose you have a solution called "import_sample_01", with two modules called "before_import_01" and "after_import_01". The "before_import_01" module has the following onOpen
event handler:
function onBeforeImportSolutionOpen() { application.output("Method executed before solution import."); }
The "after_import_01" module has the following onOpen
event handler:
function onAfterImportSolutionOpen() { application.output("Method executed after solution import."); }
If you export this solution together with its two modules, and then you import it throught the Servoy Admin Page, in the import log you should see the lines
[info] Executing pre-import hook module 'before_import_01'. [info] Method executed before solution import.
before any message related to the actual solution import, and also you should see the lines
[info] Executing post-import hook module 'after_import_01'. [info] Method executed after solution import.
after all messages related to the actual solution import.
What else can you do? The maintenance
plugin.
The pre-import and post-import hooks were introduced for allowing you to automatically perform administrative tasks on the server while importing solutions:
- Send messages to connected clients, or even kill connected clients.
- Put the server into maintenance mode for the duration of the solution import.
- Perform operations on databases.
These operations can be performed through the maintenance
plugin, which is available since version 4.2 of Servoy.