Нет поддержки Java 7 в Drools («RuntimeDroolsException: значение '1.7' не является допустимым уровнем языка»)

Пока я перемещаю свой проект на 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

5
задан Bala 20 October 2011 в 14:47
поделиться