Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
Mazhornyi patch 4.13.0.tar.gz | 2021-11-21 | 55.7 MB | |
Mazhornyi patch 4.13.0.zip | 2021-11-21 | 56.0 MB | |
README.md | 2021-11-21 | 10.3 kB | |
Totals: 3 Items | 111.6 MB | 0 |
Gradle
- Обновлены версии apache poi, sell4j и log4j, Googel gson и Kafka.
- Вместо драйвера чтения Excel "com.monitorjbl:xlsx-streamer" теперь используется драйвер "com.github.pjfanning:excel-streaming-reader".
Важные изменения
- В языке хранимых процедур оператора sql (класс getl.jdbc.SQLScripter) изменен синтаксис операторов IF и FOR. В Википедии описан новый формат работы этих операторов. Вам потребуется проверить код SQL скриптов и адаптировать под новый синтаксис операторы, если они использовались.
- Ранее по умолчанию при выполнении SQL скриптов через оператор sql (класс getl.jdbc.SQLScripter) запускался парсер языка хранимых процедур Getl. Теперь по умолчанию скрипт не парсится и выполняется как есть на стороне сервера после подстановки значений переменных. Вам потребуется проверить вызова кода SQL скриптов в коде и включить парсинг, где он требуется для выполнения. Есть другой способ включения автоматического парсинга выполняемых скриптов через оператор sql: нужно указать true для свойства extensionForSqlScripts того соединения, для которого все выполняемые скрипты используют язык ХП Getl.
- В моделях monitorRules Dsl языка метод check переименован в checkingRules, чтобы не возникали конфликты с методом check, который есть Job класса.
- Убрана поддержка облачной системы Xero (XeroConnection и XeroDataset) из-за не поддерживаемого более API этой системы.
Фичи Dsl языка
- repository: теперь каждый объект при регистрации в репозиторий имеет метку времени регистрации в свойстве dslRegistrationTime. Изменение свойств объекта на метку влияния не имеет.
- repository: при сохранении объектов в репозиторий с помощью RepositorySave теперь можно в аннотации включить опцию clear, которая включит очистку репозитория перед запуском метода класса. Если метод хочет регистрировать объекты поверх существующих в репозитории, то для аннотации надо включить опцию overwrite.
- repository: при сохранении объектов в репозиторий с помощью RepositorySave теперь записываются не все объекты репозитория на диск, а только которые были зарегистрированы в ходе выполнения методов и имеют более позднюю метку времени, чем время запуска класса.
- models: добавлены функции поиска для всех моделей по имени и по объекту.
- repository: в repositoryStorageManager появилось свойство savingStoryDataset, в котором можно задать таблицу или датасет файла CSV для записи истории сохранений объектов репозитория на диск. Датасет должен иметь поля, описанные в публичном свойстве savingStoryFields (repository, object, environment и change_time) и может быть CSV файлом или JDBC таблицей.
- repository: в repositoryStorageManager появился метод reloadObjectsFromStory, который перегружает в репозиторий с диска все объекты по истории изменений с указанного датасета.
- models: в workflow теперь можно вызывать шаблоны на базе RepositorySave класса, которые могут регистрировать и сохранять объекты репозитория на диск. При использовании таких шаблонов не разрешается использовать многопоточное выполнение в шаге, где они использованы (countThreads должен равняться 1).
- repository: добавлена возможность сохранять объекты в скриптах, наследованных через BaseScript от класса RepositorySave. По аналогии с наследованием класса, в скрипте нужно также определить методы с аннотацией SaveToRepository. Если в скрипте помимо методов есть главный код, он будет выполнен до выполнения методов генерации и сохранения объектов в репозиторий.
Фичи Getl классов
- getl.jdbc.JDBCConnection: добавлено свойство extensionForSqlScripts, которое указывается скриптеру SQLScripter, что при выполнении скриптов на данном соединении нужно включать парсинг языка хранимых процедур Getl.
- getl.jdbc.SQLScripter: теперь команды языка хранимых процедур можно вызывать с префиксом @, а переменные указывать в формате "${переменная}". Сделано для совместимости с SQL клиентом DBeaver.
- getl.utils.Lexer: доработан движок парсинга текстов, добавлена поддержка комментариев в стиле Java и SQL, в возвращаемый набор tokens каждому элементу текста теперь проставлена его расположение внутри скрипта в свойствах first и last, добавлено свойство script, которое содержит исходный текст скрипта.
- getl.utils.SQLParser: доработан движок парсинга SQL скриптов, добавлено определение SQL операторов CREATE, DROP, ALTER, TRUNCATE и операторов языка ХП Getl.
- getl.driver.Driver: в перечисления Support добавлен SELECT_WITHOUT_FROM, который указывает, что сервер может выполнять запросы без FROM секции.
- getl.utils.StringUtils: функция EvalMacroString теперь преобразует параметры списки в набор перечисления через запятую. Текстовые значения списка будут обрамлены одинарными кавычками.
- getl.jdbc.JDBCConnection: при импорте таблиц с источника вызовом метода addTablesToRepository можно теперь пропускать уже зарегистрированные в репозитории таблицы, указав это в параметре skipExists.
Баги Dsl языка
- fileman: в processing файлов могда возникнуть ошибка, если была задана история загрузки файлов "датасет не открыт для записи".
- repository: при регистрации объектов могла произойти ошибка, если они существуют, даже если флаг проверки выключен.
- repository: при запуске RepositorySave если среда не была явна задана, то устанавливалась среда dev, вместо среды по умолчанию текущего пространства Getl.
- fileman: в processing файлов могла возникнуть ошибка "датасет не открыт для записи", если была задана история загрузки файлов.
- models: в модели workflows возникала ошибка при выполнении, если в именованиях шагов встречалась точка или двоеточие.
Баги Getl классов
- getl.utils.SynchronizeObject: возникала ошибка, если вызывался метод setCount и в него передавался null.
- getl.utils.SynchronizeObject: исправлена ошибка, когда при попытке добавления null значения в список появлялась ошибка.
- getl.excel.ExcelDriver: если в датасете задавался формат булевых полей, значения которых в тексте, то они могли не считываться правильно, если их значения были не в нижнем регистре.
- getl.jdbc.JDBCDriver: если для соединения был указан путь к файлу драйвера, который находится в репозитории, то возникала ошибка.
- getl.utils.StringUtils: при парсинге текста функцией EvalMacroString имена переменных были регистрозависимыми.