Перейти к основному содержанию

ActiveJ 4.0 - Рефакторинг исключений

· 2 мин. чтения

ActiveJ v4.0 был выпущен в свет 16 февраля 2021 (см. на Maven). Этот выпуск включал в себя существенное рефакторинг исключений. Этот релиз также представляет асинхронную высокую производительность ActiveJ Redis. Другие компоненты оптимизированы для производительности.

  • Рефакторинг исключений
    • Все публичные исключения были удалены/скрыты.
    • StacklessException был удален. Классы, которые расширили StacklessException теперь продлевают регулярное Exception, некоторые из них все еще stackless. Stackless исключения предоставляют возможность включать трассировку стека для целей отладки. Это может быть достигнуто путем установки ApplicationSetting withStackTrace на true.
    • Переименованные исключения:
    • Добавлены новые исключения для компонентов верхнего уровня и т.д.
  • Представлен асинхронный легкий высокопроизводительный ActiveJ Redis клиент с расширяемым API. Примеры и бенчмарки для Redis клиента также были добавлены.
  • Оптимизация в сетевом коде, HTTP-обработке (особенно в режиме pipelining) и сериализации данных.
  • Переименован ByteBufQueue -> ByteBufs. Добавлен byte index ByteScanner, улучшен ByteBufs::scanBytes. Добавлен метод ByteBufs::consumeBytes, который работает как ByteBufs::scanBytes, но на самом деле потребляет сканированные bytes/bufs.
  • Удалено StreamMapper, теперь сопоставление потоков может быть достигнуто с помощью StreamFilter.mapper(Function<I, O>)
  • Удалены Преобразователь, Преобразователь Стрима, AbstractStreamReducer, классы StreamMerger. Слияние потоков может быть произведено через StreamReducer
  • Переименовано MergeSortReducer -> MergeReducer, MergeDistinctReducer -> DeduplicateReducer
  • Добавлена возможность получения чужих чанков из Cube через вызов Cube::getIrrelevantChunks. Нерелевантные чанки можно очистить, вызвав CubeConsolidationController:::cleanupIrrelevantChunks.
  • Добавлено правило JUnit тест правило ClassBuilderConstantsRule которое проверяет что все ClassBuilder статические константы очищены после выполнения теста.
  • Переименовано большинство классов/методов, содержащих parse, чтобы содержать decode.