Engine and Core API
Overview
Written in Java, the Genesis engine and its core API is one of three key architectural components together with the Configuration Hierarchy and application Archetypes.
The Genesis engine drives the creation of packages by using application archetypes. Archetypes, in their simplest incarnation, contain two files which detail the build instructions and the associated configuration data for a particular application. The build instructions are written in XML whilst the configuration file contains tokens which are replaced by values obtained from the configuration hierarchy. The resulting output files are copied to the build directory where they are packaged and ready deployment.
The process of creating archetypes and populating the configuration hierarchy is simple and intuitive. The Genesis engine is built upon and extends Apache Ant. This has number benefits for Genesis users:
- Apache Ant is a ubiquitous build tool amongst the Java community and is used to compile and package Java code. By building the Genesis engine on top of Ant we ensure degree of familiarity with Genesis amongst this community and an excellent level of technical support.
- The Genesis engine can be extended using the same mechanisms as are available to Ant. This simply entails writing Ant tasks which are written in Java.
- All Apache Ant tasks and extensions are automatically available to Genesis.
During the creation of an application package, Genesis can execute defined tests to ensure the application configuration meets defined standards. For example, Genesis can check the validity of security certificates used by an application or test for correct networking configuration.