Пока я перемещаю свой проект в java7, Drools начинает генерировать исключение RuntimeDroolsException во время процесса инициализации. Когда я копаю дальше, я обнаружил, что это происходит, когда он проверяет Java-диалект.
Проблема в том, что Drools 5.1.1 сравнивает системное свойство "java.version" с LANGUAGE_LEVELS для его проверки. LANGUAGE_LEVELS - это жестко закодированный список версий Java до 1.6
In org.drools.rule.builder.dialect.java.JavaDialectConfiguration,
public static final String[] LANGUAGE_LEVELS = new String[]{"1.5", "1.6"};
Я не хотел менять исходный код. Поэтому я добавил ниже в качестве обходного пути для обхода проверки Java диалект.
Properties properties = new Properties();
properties.setProperty( "drools.dialect.java.compiler.lnglevel","1.6" );
PackageBuilderConfiguration cfg =
new PackageBuilderConfiguration( properties );
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(cfg);
Есть ли лучший способ сделать это, кроме редактирования исходного кода?
P.S .: Drools 5.1.1 является последней производственной версией drools