Я использую верификатор JBoss Drools для проверки файлов правил.JBoss Drools verifier с пользовательскими оценщиками
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-verifier</artifactId>
<version>5.2.0.Final</version>
<scope>test</scope>
</dependency>
В файле правил, я использую некоторые из пользовательских оценщиков как ниже
KnowledgeBuilderConfiguration builderConf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
builderConf.setOption(EvaluatorOption.get("int", (EvaluatorDefinition) Class.forName("com.company.evaluators.IntEvaluatorDefinition").newInstance()));
правила Verifier не понимает эти пользовательские оценщиков и бросать ошибки. Есть ли простой способ передать данные пользовательских оценщиков в верификатор? Я использую следующий код -
verifier.addResourcesToVerify(ResourceFactory.newInputStreamResource (in),
ResourceType.DRL);
verifier.fireAnalysis();
//Get the Verifier errors
List<VerifierError> errors = verifier.getErrors();
if (errors.size() > 0) {
System.out.println("####### Verifier Errors #############");
for (VerifierError error : errors) {
System.out.println(error.getMessage());
}
}else {
// Get the result object [5]
VerifierReport result = verifier.getResult();
// Print the the errors [6]
for(VerifierMessageBase base: result.getBySeverity(Severity.ERROR)){
System.out.println(base);
}
for(VerifierMessageBase base: result.getBySeverity(Severity.NOTE)){
System.out.println(base);
}
for(VerifierMessageBase base: result.getBySeverity(Severity.WARNING)){
System.out.println(base);
}
}
Похоже, мне нужно добавить поддержку для них. Спасибо за сообщение. https://issues.jboss.org/browse/JBRULES-3419 –