Я собираюсь проверить :)
я естьJava
Drools
приложение работает7.4.1.Final
версия, с.drl
файл с его правилами. Мое приложение позволяет генерировать новый.drl
файл во время выполнения или изменить текущий.drl
файл.
Я хочу запустить этот новыйdrl
файл без повторного запуска моего приложения. Я знаю, что если я перезапущу снова, он загружает новую версию файла правил, но я хочу избежать остановки приложения. Мое приложение.jar
приложение, которое я используюjava -jar
команда. В коде нижеCTES.Rules
содержать файловую систему с.drl
файл.
Является ли это возможным?
Я прилагаю код, который я использую для загрузки моего файла правил:
private void build() throws Exception {
KieServices kieServices = KieServices.Factory.get();
KieFileSystem kfs = kieServices.newKieFileSystem();
kfs.write(ResourceFactory.newFileResource(new File(CTES.RULES)));
KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll();
KieContainer kieContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());
KieSessionConfiguration conf= SessionConfiguration.newInstance();
kSession = kieContainer.newKieSession(conf);
if (kieBuilder.getResults().hasMessages(Message.Level.ERROR)) {
List<Message> errors = kieBuilder.getResults().getMessages(Message.Level.ERROR);
StringBuilder sb = new StringBuilder("Errors:");
for (Message msg : errors) {
sb.append("\n " + msg);
}
throw new Exception(sb.toString());
}
System.out.println("KieServices built: ");
}
ОБНОВИТЬ Я читал о KieScanner, а также о KieModule. Но я не знаю, как включить новые приложения в свое приложение или как использовать KieScanner.
Что я должен изменить в этом коде, чтобы разрешить загрузку новой версии.drl
файл (вCTES.RULES
) без остановки моего приложения?
Спасибо