Я исследую использование Drools с объектами фактов, даты / время которых являются объектами Java 8 (OffsetDateTime
, OffsetTime
и LocalDate
).Я понимаю, что Drools предпочитает java.util.Date
- бу!- если дан класс фактов
public class Fact {
private LocalDate date;
...
}
, то эта форма не работает:
rule "Date is 12-FEB (native)"
dialect "mvel"
when
Fact( date == "2019-02-12" )
then
insert(drools.rule.name);
end
, но любая из этих форм работает:
rule "Date is 12-FEB (parse)"
dialect "mvel"
when
Fact( date == LocalDate.parse("2019-02-12") )
then
insert(drools.rule.name);
end
rule "Date is 12-FEB (of)"
dialect "mvel"
when
Fact( date == LocalDate.of(2019, 2, 12) )
then
insert(drools.rule.name);
end
Таку меня вопрос: LocalDate
объекты запекаются в KieContainer
один раз или они воссоздаются каждый раз, когда я вызываю KieContainer.newKieSession(...)
?
Другими словами, есть ли снижение производительности при использовании Java?8 дат / раз таким образом за java.util.Date
?