The initial load of Atoti Limits data allows you to bulk load limits and incidents when the application first
starts and connects to your Atoti Server instance. The loading process can be customized to fit your needs
through configuration properties or by implementing your own custom service.
Initial load configuration properties
How to customize the initial load data location
By default, Atoti Limits will attempt to load the data from CSV files located in the directory specified by the
limits.initial-load.root-dir property. When Atoti Limits starts and connects to your Atoti Server
instance, it will look in the location specified by this property for a subdirectory with the name of your
Atoti Server instance which is specified by the limits.autoconfiguration.server-name property.
info
The limits.autoconfiguration.server-name property is autoconfigured by default, but you can set it explicitly in the
configuration for your Atoti Server if needed.
The default directory for Atoti Limits data is ./src/main/resources/data. If you need to change this location,
set the limits.initial-load.root-dir property to the desired path in your application.yml file.
How to customize the initial load data file patterns
Within the directory specified by the limits.initial-load.root-dir property, Atoti Limits will look for files
that match the patterns specified by the limits.initial-load.file-path-matchers.* properties. The default patterns are:
To customize these patterns, set these properties accordingly in your application.yml file. If you only wish to
customize the pattern for some of the file types, you can set only those specific properties, and the others will use the
default values.
How to customize the file loading service
If you need to customize the initial load process beyond what is possible with the configuration properties, you can
implement your own file loading service by creating a custom ILimitsFileLoadingService implementation to replace the
default DefaultLimitsFileLoadingService.
ILimitsFileLoadingService
/**
* <b>ILimitsFileLoadingService</b>
*
* <p>This interface defines the methods for loading limits data from CSV files.
*
* <p>Implementations of this interface should ensure that the data is loaded in the correct order
* as described in the {@link #loadLimitsData(String)} method.
*
* @author ActiveViam
*/@FunctionalInterfacepublicinterfaceILimitsFileLoadingService{/**
* Loads all limits data, including asOfDate, limit structures, limits, and incidents. This method
* is intended to be called when Limits first connects to a server. Besides the AsOfDate, the
* ordering of the calls is important to ensure that the data is loaded correctly:
*
* <ol>
* <li>1. Load the AsOfDate (this could be done at any point in this sequence)
* <li>2. Load the limit structures before the limits because creating limits requires
* information from the structures.
* <li>3. Load the limits before the incidents because creating incidents requires information
* from the limits
* <li>4. Load the incidents last because they are dependent on the limits.
* </ol>
*
* @param serverName the name of the server for which to load the limits data
*/voidloadLimitsData(String serverName);}
Once you have created your custom implementation, expose it as a Spring bean in your project and Spring will
use it instead of the default implementation.