Это был второй проект, над которым я работал, я столкнулся с одной и той же проблемой. Как правильно обрабатывать продвижение состояния бизнес-объекта? До сих пор мы используем базовый переключатель/случай:Операция Workflow Engine Java API
public void pushTransferToStatus(Long id, Status status) {
// SOME PRECONDITIONS
switch (currentStatus) {
case OPEN:
// DO SOMETHING
break;
case SAVED:
// DO SOMETHING ASYNC
break;
case VALIDATED:
// DO SOMETHING
break;
case AWAITING_SHIPPING:
// DO SOMETHING
break;
case VERIFIED:
// DO SOMETHING
break;
case CLOSED:
// Exit case.
break;
default:
throw new UnsupportedOperationException();
}
pushTransferToStatus(id, newStatus);
}
Это приводит к запутанному коду, и как вы можете видеть, у меня есть операция aync для выполнения. Мне было интересно, есть ли какой-то API высокого уровня, который поможет мне справиться с развитием этого простого рабочего процесса?
Я много читал о jBPM, но я не уверен, если это соответствует моим потребностям ... Спасибо за вашу помощь
До сих пор я нашел эти, довольно просто, но было бы здорово иметь что-то интегрированы в Eclipse,
- https://github.com/hekailiang/squirrel
- https://github.com/Beh01der/EasyFlow
- https://github.com/oxo42/stateless4j
Чтобы закрыть этот вопрос, похоже, https://github.com/spring-projects/spring-statemachine это решение