Configuration

External user configurable system settings will use Apache Commons Configuration.

Configuration files will be held in the conf directory off the root of the OSGi framework (the current directory in which the JVM is started).

The project uses version 1.6 of the Commons Configuration (at the time of writing) because this happens to be the one for which dependencies have been resolved in the OSGi framework while integrating neo4j into a bundle. Version 1.8 was looked at, but requires some work to resolve additional dependencies, so I've skipped over it for now at it offers not advantages to the project at the moment.

Rationale
Seeking a relatively flexible but consistent means of providing key system wide configuration, the Commons Configuration provides what is required. It's default search order (current directory, user's home directory, then class path) is ideal for this sort of configuration.

What configuration settings should be present?
This configuration environment is intended for system wide configuration that users may wish to tailor at installation, but we do not expect to change subsequently. For example, the location of the local database for an agent, or the port numbers on which web services are provided or listeners are to be active.

What configuration settings should not be present?
Any configuration supplied or modified at run-time. These configuration settings should be held in the agent's local database.