No need to write or add rules to file in classpath.

This commit is contained in:
Thierry Göckel 2020-07-17 12:55:49 +02:00
parent 4832555343
commit c80cae3fc3

View File

@ -29,8 +29,6 @@ public class DroolsExecutionService {
@Autowired @Autowired
private KieContainer kieContainer; private KieContainer kieContainer;
private String currentDrlRules;
private long rulesVersion = -1; private long rulesVersion = -1;
public Section executeRules(Section section) { public Section executeRules(Section section) {
@ -64,22 +62,15 @@ public class DroolsExecutionService {
KieServices kieServices = KieServices.Factory.get(); KieServices kieServices = KieServices.Factory.get();
InputStream input = new ByteArrayInputStream(drlAsString.getBytes(StandardCharsets.UTF_8)); InputStream input = new ByteArrayInputStream(drlAsString.getBytes(StandardCharsets.UTF_8));
KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieFileSystem.write("src/main/resources/drools/rules.drl", kieServices.getResources() kieFileSystem.write(kieServices.getResources().newInputStreamResource(input));
.newInputStreamResource(input));
KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
kieBuilder.buildAll(); kieBuilder.buildAll();
KieModule kieModule = kieBuilder.getKieModule(); KieModule kieModule = kieBuilder.getKieModule();
kieContainer.updateToVersion(kieModule.getReleaseId()); kieContainer.updateToVersion(kieModule.getReleaseId());
currentDrlRules = drlAsString;
} catch (Exception e) { } catch (Exception e) {
throw new RulesValidationException("Could not update rules", e); throw new RulesValidationException("Could not update rules", e);
} }
} }
public String getRules() {
return currentDrlRules;
}
} }