Я новичок в слюнях, и я работаю над проектом, в котором мне нужно, чтобы движок слюни понимал, что файл drl обновлен, и перестраивал его правила. Я изучал использование сканера kie, но это выглядит беспорядочно и требует maven и git. Для краткости, давайте просто предположим, что наш репозиторий maven недоступен для этого использования. Можно ли направить сканер (или что-то еще) на файл drl, находящийся в файловой системе, и обновить проект, если этот файл будет обновлен?
Drools 6 Обнаружение изменений файла DRL
Ответы (1)
Если вы не хотите использовать встроенную функцию сканирования, существует служба Java WatchService, которая будет предоставлять уведомления об изменениях в каталогах и восстанавливать вашу базу знаний при наличии изменений:
http://docs.oracle.com/javase/tutorial/essential/io/notification.html
Восстановление базы знаний подразумевает лишь уничтожение существующей базы знаний и создание новой.
Изменить - я ранее упоминал об использовании опроса потребителей файлов Spring Integration или Camel. Это больше для перетаскивания файла в каталог, из которого он будет взят, обработан и, как правило, удален из этого каталога. Это не очень подходит, если намерение состоит в том, чтобы модифицировать файлы DRL на месте и ожидать перезагрузки базы знаний в ответ на эти изменения.