This topic contains adapter development overview.
An adapter is a class realizing the gran.app.adapter.Adapter interface. Each subsystem in TrackStudio has its own interface, inherited from gran.app.adapter.Adapter. For instance, to implement an export adapter, you must implement the class, realizing the gran.app.adapter.ExportAdapter interface. Adapters are stateless components, i.e. they do not have an internal state and do not remember the history of the previous calls.
The list of the loadable adapters can be found in trackstudio.adapter.properties, for example:
# External adapters adapter.export gran.app.adapter.export.XMLExportAdapter adapter.email gran.app.adapter.email.BaseFilterNotifyAdapter
If you need to execute a pipeline of some adapters (implementing the same interface) to perform some operation, you must put them in one line using ';' as a separator, for example:
adapter.pop3 gran.app.adapter.pop3.BasePOP3Adapter; gran.app.adapter.pop3.MailImportMessagePOP3Adapter; gran.app.adapter.pop3.MailImportTaskPOP3Adapter; gran.app.adapter.pop3.CleanPOP3Adapter; gran.app.adapter.pop3.PostProcessingPOP3Adapter
If there are two identical adapters in the list, only the first of them will be executed. If there is an adapter not realizing the required interface in the list, it is not loaded.