Использование функций Java 8 (более новая версия JANINO) в интеграции данных Pentaho - PullRequest
0 голосов
/ 03 октября 2018

Pentaho Data Integration 8.0.x использует Janino 2.5.16, выпущенный в 2010 году для компиляции шага пользовательского класса Java.В Пентахо есть JIRA для обновления, чтобы использовать более новую версию Janino, которая принесет новые функции, связанные с java 8, в pentaho v8.2.0 GA.Но нет никакой информации о том, когда это будет выпущено.

Есть ли другой способ использовать более новую версию janino (janino-3.0.8.jar) с выходом из pentaho для UDJC?Я попытался скопировать обновленный jar в lib, а также добавил commons-compiler-3.0.8.jar для выполнения зависимостей.Теперь, когда я открываю Spoon, я получаю следующую ошибку:

error image

Пожалуйста, сообщите, как этого можно достичь.Я понимаю, что простой замены банки может быть недостаточно, но я просто хочу, если что-то еще можно сделать.

1 Ответ

0 голосов
/ 16 октября 2018

Это не легко.Даже сейчас, с тех пор как вы получили ClassNotFound, публичный API janino изменился.Некоторые классы удалены, некоторые изменены.Что нужно для его обновления?

Если вам нужна действительно сложная бизнес-логика, создайте собственный плагин.Документация и учебные руководства доступны, и вы можете посмотреть источники текущих встроенных плагинов (источники доступны на github).

Какая важная новая версия janino имеет, что старая не имеет (кроме поддержки java8)?Изучите движок чайника, посмотрите источники шага UserDefinedClass, измените код для поддержки новой версии janino, протестируйте и создайте собственную сборку pdi kettle и попробуйте отправить push-запрос сопровождающим репозитория.

Любое из этого довольно сложно, Этот плагин встроен в движок, и вы должны сделать собственную сборку.Собственная сборка означает, что вы должны поддерживать ее самостоятельно.Это не тривиально, проект огромен, а теперь еще больше и продолжает развиваться, я потратил несколько дней, чтобы сделать свою первую специальную сборку (версия 4, была в плюще) только для того, чтобы лучше узнать и отладить сложные случаи, и он никогда не использовалв производстве.

Специалисты по обслуживанию хранилища должны иметь веские основания для включения ваших изменений в поток, они должны быть хорошо протестированы, и это длительная процедура, и, скорее всего, она того не стоит.Многое изменилось с 2010 года, я, вероятно, видел в примечаниях к выпуску, что новая версия Java уже имеет возможности для компиляции во время выполнения.

Мой совет - сделать свой собственный плагин.

...