Подключение к серверу дерева контекста

Интерфейс ContextPlugin предоставляет несколько групп методов, чтобы подключить новые элементы к дереву контекстов AggreGate Server. У каждой группы есть два метода: метод "загрузка", вызываемый во время загрузки сервера или создания контекста, и другой метод "выключение", вызываемый во время выключения сервера или удаления контекста.

Инициализация/деинициализация плагина

Когда создается новый плагин контекста, сервер вызывает его метод initialize(), который может содержать общий код инициализации.

Когда плагин удаляется, сервер вызывает его метод deinitialize().

Настройка на базе контекста

Каждый раз, когда новый контекст создается впервые или повторно при загрузке сервера, сервер вызывает метод плагина install(Context context). Его реализация может:

  • Добавлять определения переменных/функций/событий/действий в контекст и при необходимости предоставлять их "пользовательский код" (переменные getters/setters, реализации функций)
  • Добавлять слушателей события в контекст

Пожалуйста, избегайте предоставления разрешения доступа другим контекстам сервера из метода install(Context context). С момента создания сервера дерева контекстов определенные контексты сервера могут быть доступны во время отладки и становиться недоступными в рабочей среде, что может стать причиной непредсказуемого поведения.

Чтобы получить доступ ко всему дереву контекстов, добавьте свой код в методы install(ContextManager contextManager) или launch().

Настройка на базе контекстного дерева

Метод install(ContextManager contextManager) вызывается сразу же после завершения загрузки серверного контекстного дерева и после того, как все контексты загрузятся. Его реализация может получать определенные серверные контексты, используя метод ContextManager.get(), а также добавлять определения переменных/функций/событий/действий и/или слушателей событий.

Запуск плагина

Метод  плагина launch() вызывается в самом конце загрузки сервера, когда все серверные контексты и компоненты включены и запущены. Он должен быть реализован, только если другие коды из любых описанных выше методов не сработают.