Порекомендуйте FSM для Java?

Всем привет. Для java 8 Enterprise проекта прошу порекомендовать качественную имплементацию стэйт машины. Проект написан на Guice, поэтому взять готовый Spring Statemachine возможности нет

Для себя выявил следующие требования в порядке приоритета:
  1. Типизированный API - ожидаем что при создания машины можно указать типы событий с действий в сигнатуре. Проверка на этапе компиляции наше все
  2. Конфигурации в коде. Прости xml мы тебя похоронили
  3. Компактность - отсутствие тяжелых внешних зависимостей (spring statemachine тут отвалился)
  4. Потокобезопасность - ожидается что при отправке события из разных потоков они будут синхронизированы и состояние поменяется атомарно. Непотокобезопасно всегда успеем потом сделать
  5. Удобство использования - машина не должна вводить в проект собственный мир (akka fsm и прочая scala) на понимание которого придется потратить неделю времени
  6. Легковесность - не плодим мусор на каждый чих. Хочется иметь возможность использовать одну fsm в разных ситуациях, начиная от отслеживания глобального состояния приложения, заканчивая сценарием использования в короткоживущих объектах
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы