Skip to content
This repository has been archived by the owner on Apr 1, 2022. It is now read-only.

Architecture

vronk edited this page Jan 2, 2013 · 8 revisions

Requirements / Dependencies

The application runs within an instance of an eXist XML-database within a servlet container. This can be fetched and built with the build-script, or only the application scripts can be packaged as XAR-packages and installed into a already existing/running eXist-db installation.

Layout of the application

This is the structure of collections within the database (starting from /db/sade/ or, adopting the recent change in exist-db collections structure, /db/apps/sade/)

core
core scripts
modules
individual modules, each in its own collection (e.g. /db/apps/sade/modules/index/index.xqm)
more information in docs/modules.md
templates
place to store different layouts (of the web user interface)
has to provide at least: index.html
more information in docs/templating.md
projects
place to store individual projects (each in its own collection). Mainly for project-data and configuration but optionally project-specific xql, css, html can be stored here.
the projects collection should be outside of the sade-application for easier updates
the default collection is /db/apps/sade-projects (planning to move to /db/sade-projects, but there were problems with resource resolution for now), and will be generated by the installation script
default project: /db/apps/sade-projects/default
structure of every project-collection:
  • ./config.xml
  • data
  • static/content
  • (templates) - optional: project's layout is dictated by the template (refered to from the projects' configuration), but the project can have its own templates, or even partial overrides of the refered templates
config
under projects/{project}/config.xml stores settings of the project, mainly:
  • which data to use
  • which template to use
  • which modules are required and where within the templates, they should be placed (also allows setting default values for the parameters of the module functions)
more information in docs/config.md

Packaging

The deployment is being put on the basis of XAR-packages (specification, tools) - so that both the basic application, the individual modules and actual projects shall be available and deployable as such packages.

Clone this wiki locally