Skip navigation links

Package xyz.cofe.cxconsole.srvc

Обеспечивает концепцию служб/демонов.

See: Description

Package xyz.cofe.cxconsole.srvc Description

Обеспечивает концепцию служб/демонов.

Концепт служб/сервисов построена на частичной аналогии служб windows / демонов linux.

Служба/Сервис в данном случаи это некий Java-объект предоставляющий необходимую функциональность клиенту.

Клиент в данном случаи то же прдествляет из себя службу/сервес - экземпляр интерфейса ConsoleService и/или подтип AbstractService.

Реализация клиента примерно такая:

 class SrvcC extends AbstractService {
 // Так объявлется зависимость
 @Dependency protected TargetService instance;
 ..
 }
 
При вызове метода AbstractService.initDependencies() - среди списка сервисов (переданных через метод init(Console console) для каждого поля (с null ссылкой) помеченного аннотацией @Dependency находится подходящая реализация, найденная реализация записывается в значение поля.

Разрешением зависимостей занимается базовые классы как AbstractService и Resolver.

Результатом разрешения зависимостей - является направленный граф (возможно даже циклический) между службами.

Службы в свою очередь могут выступать как просто объекты, так и службы которые зависят от других служб.

Служба может быть также "стартуемой" - т.е. для выполнения необъодимой функциональности необходимо вызвать метода start().

Служба передет в состояние запущенна, тогда когда все службы от которых она зависит тоже будут запущены.

При остановке службы, все зависимые службы будут остановлены.

Skip navigation links

Copyright © 2018. All rights reserved.