Плагин соты - это тип, реализующий обработку одного или более форматов структурирования данных в одном или более протоколе передачи данных. То есть, один плагин может реализовать обработку как и какого-то конкретного концепта (например, поддержка atom feed xml over http), так и нескольких (например, поддержка rss feed: atom xml over http, OData over http, OData over tcp, etc).
Экземпляр каждого плагина существует в единственном экземпляре (Singleton) на протяжении всей жизни улья.
Экземпляр создаётся во время инициализации улья, после инициализации вызывается метод .configure(Config config),
в который передаётся секция конфигурационного файла, относящаяся к данному плагину (адресация по полному имени класса плагина).
После инициализации экземпляр плагина передаётся во все создаваемые соты, соответственно параметризации поддерживаемой обработки,
в качестве обработчика входящих данных.
В рабочем цикле сота, при накоплении некоего массива данных, первым шагом передаёт плагину обработчик,
которому следует передать структуру Log Entry, сформированную в процессе работы.
Вторым шагом сота передаёт сам накопленный пакет данных путём вызова метода
chunk(byte[] data, DataAddress source)где data - это данные, source - источник данных.
В общем случае, для поддержки любой конфигурации достаточно реализовать контракт класса ru.gang.logdoc.sdk.SinkPlugin,
разместить соответствующий jar в classpath улья и указать имя класса в конфиге,
в секции logdoc.plugins.sinks - при следующей инициализации улья плагин будет загружен
и управляющие модули получат возможность открывать в этом улье соты с реализованной обработкой.
<dependency>
<groupId>org.logdoc</groupId>
<artifactId>sink-plugins</artifactId>
<version>1.0.5</version>
</dependency>