Я собираюсь проверить :)

я есть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) без остановки моего приложения?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос