Skip to content

Toro Cloud Dev Center


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
<application-home>
├── bin
├── conf
│   └── properties
│   │   └── application.properties
│   └── broker
│   └── ceji
│   └── db-pool
├── core
├── data
│   └── geoip
│   └── hsql
│   └── jms
│   └── queries
│   └── solr
│   └── src-index
│   └── transaction-logs
├── lib
│   └── ext
├── logs
├── packages
├── solr
├── tmp
└── web

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-pool3 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/geoip3 Files used by the Tracker to add geolocation data to Tracker documents.
data/hsql3 Files used by the embedded Hypersonic databases.4
data/jms3 Files used by the embedded ActiveMQ message broker.5
data/queries Query files used by Martini's Database perspective.
data/solr3 Search indices used by the embedded Solr search engine.6
data/src-index3 Search index files used by Martini for code refactoring and searching.
data/transaction-logs3 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/*

  1. See installation and deployment instructions

  2. Moving from one version of Martini to another; for example, from v1.0 to v1.1 whilst retaining data. 

  3. Does not appear on a fresh installation of Martini; not created until Martini's first start-up. 

  4. Martini uses HSQL for its core databases by default; for production-use, it is recommended to migrate to a more robust database engine. 

  5. See also Martini and ActiveMQ

  6. Martini uses Solr in custom search indices, the Monitor search index, and the Tracker search index

  7. Folders named after registered Martini packages.