Overview
Kill Bill configuration is done principally via Java system properties.
These can be set on the command line (e.g. java -Dkey1=value1 -Dkey2=value2 -jar killbill-server-jetty-console.war
) or in special killbill.properties
file (via -Dorg.killbill.server.properties=file:///path/to/killbill.properties
). If you are using a custom kpm.yml
configuration file, you can also set them under the properties
sub-entry like here.
Some properties are global to the system, and therefore will apply to all tenants. Others (such as Catalog and Overdue configuration, as well as Invoice templates and language translation resources) can also be configured on a per tenant basis.
Most properties are accessible to the plugins through OSGIConfigPropertiesService.
Some parts of the system also rely on additional configuration files. The caching layer for instance, which is based on EhCache, requires a specific xml configuration. The location of the xml itself is specified via a system property though (org.killbill.cache.config.location
in this case).
System Properties
Kill Bill core services can be configured through system properties defined in the following files:
-
Catalog configuration: used to specify the location of the default catalog if no per-tenant catalog has been uploaded
-
Invoice configuration: configurable globally or on a per-tenant basis
-
Overdue configuration: used to specify the location of the default overdue configuration if no per-tenant configuration has been uploaded
-
Payment configuration: configurable globally or on a per-tenant basis
The properties to configure the database are split between the core Kill Bill services and the plugins, to allow plugins to use a different database or configuration:
The properties to configure the persistent buses and notification queue are shown below. Those properties are built to be used across multiple instances (we have two persistent buses) which explains the substitution parameter instanceName
. For more
details on the configuration of the bus and notification queue, check here.