Development
Architecture
This image includes draw.io data.
Packages
SADE consists of three EXPath packages to run within the eXist-db environment:
Dependencies and Requirements
Within eXist-db the following packages are required:
- Markdown Parser
- Function Documentation
- Shared Resources
Further dependencies may be defined by eXist-db. Mainly this is Java 8 and sufficient amount of memory 2GiB should be available for exclusive usage (Xmx
).
Build
There are ant
tasks available in a separate git repo. This build script generates a complete package containing the eXist database and all required components. Configure this build via the generic.build.properties
file.
Every package can be built separately by calling ant
in the root directory. The result will be a build*.xar
file.
To simplify development you can get a quick set up of the current SADE application on your file system by invoking ant test
, which creates a runnable database at `test/eXist$version/bin/startup.sh`.
Physical Structure
The file structure is pretty usual for EXPath application within eXist-db. To read more on this, the chapter about the Model View Controller in the eXist-db book is highly recommended.
All basic files are stored in the app root directory, especially the main configuration and the controller.xql (the main router in the MVC model), index configuration and package descriptions.
root |-- docs |-- modules |-- templates |-- textgrid
Request Processing by Example
All requests for HTML pages are handled by the controller.xql
. Please see the documentation of eXist-db on MVC and Pipelines.
Configuration
All required and additional parameters are set within config.xml
. Parameters are parsed by the config module (config.xqm
). The most demanded function is config:get($key)
and config:get($key, $module)
. They will return any data stored in the requested part in config.xml
.