Java-дайджест (16 июля — 23 июля)

Этот дайджест взаимодополняет выпуск подкаста «Разбор Полётов». На этот раз в студии были Барух Садогурский и Олег Чирухин. Получить запись подкаста можно либо пройдя по ссылке на сайт РП, либо скачав MP3-файл.


  • Вышел Gradle 4.9:
    • В JavaExec можно передавать аргументы с помощью --args;
    • Улучшенный dependency insight report;
    • Продолжается развитие gradle-native;
    • Больше данных хранится не в проекте, а в домашней директории пользователя, поэтому чистые пересборки ускорятся;
    • Поправили утечки файловых дескрипторов. Можно переключаться с форка на in-process компиляцию;
    • Новое экспериментальное tasks API, которое позволяет устранить оверхед на создание и конфигурирование тасков, которые никогда не выполняются;
    • и многое другое.
  • Немного некрофилии. Вышел Apache Ant версий 1.9.13 и 1.10.5. В основном это багфикс-релизы, но главное, что сейчас держат в уме разработчики — совместимость с JDK 11. В частности, с помощью атрибута sourcefile в таске java можно использовать новую фичу JDK 11 — запускать Java-программы, состоящие из одного файла.
  • В Pivotal (компания, стоящая за Spring) официально подтвердили участие в программе помощи по реализации 30-дневного «cure period» для лицензии GPLv2. Одна из важнейших фичей GPLv3 — если ты нарушил копирайты, то с момента первого предупреждения есть 30 дней, чтобы разобраться со своими лицензиями, и только после этого у тебя отберут все права. Благодаря инициативе ряда компаний такое же послабление теперь соблюдается GPLv2, LGPLv2.1 и LGPLv2. Сейчас такой поддержкой занимается множество компаний, включая Red Hat, Facebook, Google, IBM, CA Technologies, Cisco, HPE, Microsoft, SAP, SUSE, VMware.
  • Hibernate Validator обновили в версии 6.0.11.Final до JDK11. Центральный вопрос с JAXB, выброшенном в JDK11, решили так: обращаться к внешним зависимостям они не будут, потому что дескрипторы у них очень простые и можно использовать прямой доступ к StAX. Напоминаю, что начиная с 2016 года JSR-173: Streaming API for XML находится в статусе withdrawn по причине, что API достаточно стабильные и обновлять их не нужно. Это может дать идею всем, кто задумывается о переходе на JDK11 — как при таком переходе стоит решать проблемы.
  • Выпущен очередной релиз-кандидат IntelliJ IDEA 2018.2. Из забавного: на тачбар добавили welcome dialog с возможностью выбрать проект, а в меню запуска на тачбаре появилась возможность добавлять новые run/build-конфигурации. Отдельными постами описаны улучшения для Groovy и для Spring Boot.

  • В MongoDB 4.0 добавились столь желанные Multi-Document ACID Transactions, отчего она всё более начинает напоминать нормальную базу данных. Насколько они хорошо работают — пока замнём для ясности и подождем адского разбора от какого-нибудь известного эксперта. Работает это только на движке WiredTiger, поддержка sharded clusters приедет в будущей версии 4.2. На уровне кода всё сопряжено с кучей ограничений (можно использовать только для CRUD-логики, не работающей с database catalog — нельзя создать или удалить индекс или каталог, нельзя даже сделать listCollections и listIndexes или позвать createUser/getParameter/count/…). Как всё это работает с проектами Spring пока непонятно, но, например, в проекте Activiti (BPMN-движок, написанный на Java) работа по интеграции мультидокументных транзакций уже ведется.

Eclipse

  • Появился OpenMobility Working Group Charter. В этом уставе описывается рабочая группа по фреймворку OpenMobility, предназначенному для подробной симуляции движения транспорта и людей, а также их паттернов общения. Может оказаться полезен для тестирования средств управления автомобилями, оптимизации городского трафика, обкатке новых концепций вроде Mobility-as-a-Service. Чтобы стать членом группы, нужно быть как минимум Solutions Member​ в Eclipse Foundation и подписать соответствующие бумажки. Конкретные технические темы:
    • Microscopic and Mesoscopic Traffic Simulation
    • Vehicle-to-Vehicle, Vehicle-to-Infrastructure Communication Simulation
    • Pedestrian Dynamics Simulation
    • Simulator Coupling infrastructure
    • Interfaces to Advanced Driver Assistance Systems and Intelligent Transportation Systems solutions
  • В Eclipse, для поддержания совместимости с Photon, продолжают обновляться плагины. Например, обновились JBooss Tools и RedHat Developer Studio, RHAMT Eclipse Plugin. Если вы еще не обновили свой плагин, стоит это сделать побыстрей, поезд ждать не станет.
  • В Jakarta EE кипит работа. 39 проектов, 26 уже созданы, а остальные в каких-то других фазах. Перенесена половина из 110 репозиториев. Полный список можно посмотреть в блоге у Дмитрия Корнилова (не знаю, насколько он обновляет этот список, но, по крайней мере, он дает понимание масштаба проблемы).

Spring

В основном всякая минорщина, например:


Дайджест готовили

  • Текстовая версия: Олег Чирухин (контент, верстка, проверка фактов) и редакция JUG.ru Group;
  • Подкаст «Разбор Полётов» (ссылка на запись): Барух Садогурский и Олег Чирухин.