Directory structure
Martini's files and directories are arranged in a certain way to allow for convenient upgrades1, seamless data management and transfer, and easy location, extraction, and configuration of application behavior. Some examples where this is beneficial include:
- Retaining Martini packages through upgrades2
- Making Solr schema and data files accessible; which is handy when moving embedded Solr search engine data to a remote or cloud instance
- Performing configuration changes based on a profile
As with most software, Martini's application files are generated during installation. Seen below is Martini's hierarchy of application files and folders:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
The table below lists the directories above their purpose:
Directory | Content and Purpose |
---|---|
bin |
Scripts, batch files, and shortcuts for starting, stopping, and restarting Martini. This directory also contains the CLI tool. |
conf |
The package.xml file for configuring the core package; the log4j.properties file for configuring application logging; and also contains the Groovy file used by Martini for customizing the Groovy compiler's behavior. |
conf/broker |
XML files for configuring the JMS message broker. |
conf/ceji |
Text files comprised of messages or responses used by Martini CEJI. |
conf/db-pool 3 |
XML files that contain database connection configuration information. |
conf/properties |
.properties files used to configure Martini. |
core |
Martini's Spring configuration files. |
data |
.properties files for setting remote server configuration and overriding default Martini properties. |
data/geoip 3 |
Files used by the Tracker to add geolocation data to Tracker documents. |
data/hsql 3 |
Files used by the embedded Hypersonic databases.4 |
data/jms 3 |
Files used by the embedded ActiveMQ message broker.5 |
data/queries |
Query files used by Martini's Database perspective. |
data/solr 3 |
Search indices used by the embedded Solr search engine.6 |
data/src-index 3 |
Search index files used by Martini for code refactoring and searching. |
data/transaction-logs 3 |
Files used by Martini to ensure transactions are executed successfully. |
lib |
JAR files used by Martini. |
lib/ext |
Directory where additional JAR files can be placed so that they will be loaded by Martini. |
logs |
Log files generated by Martini. |
packages |
Contains Martini package directories7, each of which holds package-specific code, data, and configuration. Can be changed via the package.home application property. |
solr |
Configuration files for Tracker, API monetization, and API throttling. |
tmp |
Directory used by the embedded Tomcat web server to store temporary files. |
web |
Web pages and assets used by the web interface (Martini Runtime Admin UI) of Martini. |
Upgrading Martini
If you plan on upgrading an instance of Martini, you should at a minimum copy the following files and directories before overwriting, or migrating to a new installation in order to keep existing configuration, data, and applications.
conf/*
data/*
packages/*
lib/ext/*
-
Moving from one version of Martini to another; for example, from v1.0 to v1.1 whilst retaining data. ↩
-
Does not appear on a fresh installation of Martini; not created until Martini's first start-up. ↩↩↩↩↩↩↩
-
Martini uses HSQL for its core databases by default; for production-use, it is recommended to migrate to a more robust database engine. ↩
-
See also Martini and ActiveMQ. ↩
-
Martini uses Solr in custom search indices, the Monitor search index, and the Tracker search index. ↩
-
Folders named after registered Martini packages. ↩