Java-дайджест (17 сентября — 24 сентября)

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


Java: язык и платформа

  • Новый JEP draft: Concise Method Bodies. Возможность записать тело метода в виде лямбды, в различных видах. Пример: ToIntFunction<String> lenFn = (String s) -> s.length();. Традиционный перевод на Habr.com — на подходе.
  • В Java Bug System добавили новый лейбл: «time wasters». Это специальный лейбл для задач, бездарно жрущих время инженеров. Но не JVM-инженеров, а именно пользователей, прикладных разработчиков. Например, к ним относятся баги, приводящие к падению тестов с невразумительной ошибкой — инженер может потратить кучу времени на их расследование только чтобы понять, что никакой интересной информации из этой деятельности получить не удалось. Нет, это не шутка, это написал Jesper Wilhelmsson OpenJDK GateKeeper и член OpenJDK Vulnerability Group. Посмотреть все относящиеся к новому лейблу тикеты можно по ссылке. На момент написания новости там был всего один тикет: «Missing synchronization when reading counters for live threads and peak thread count».
  • BellSoft выпустили Liberica JDK 10 для Linux x86-64 (Раньше была только ARM32-версия для Raspberry, а теперь появилась и Linux x86-64). А ещё появилась Liberica JDK 11 preview для Raspberry Pi, и с этой сборкой ребята из Gluon уже сделали демо (JavaFX 11 early access on embedded). Качать всё это предполагается с официального сайта.

Java: компании

  • Это уже было в прошлом выпуске, но повторение — мать учения. Опубликовано открытое письмо за подписью Java Champions и сотрудников Оракла, разъясняющее, что Java была и будет бесплатной — в том или ином варианте. Если вы как раз решили удариться в панику, вначале стоит прочитать письмо.
  • Результаты первой четверти 2018-19 показали 9.2 млрд. долларов, или 1% рост доходов. co-CEO Mark Hurd считает это «отличным ростом», но аналитики не столь уверены. К сожалению, Oracle перестали писать, какую часть дохода составляют облака (ещё в 2017-2018) и кое-кто мог бы посчитать, что это способ спрятать истинную прибыльность облаков.

Безопасность

  • Новые варианты ботнетов Mirai и Gafgyt ориентируются уже не на обычные потребительские устройства, а на энтерпрайзную инфраструктуру. В частности, стало известно, что они эксплуатируют те уязвимости в Apache Struts (в тэге url), которые привели к утечке данных 140 миллионов клиентов Equifax в этом году. Кстати, создатели оригинального Mirai () недавно избежали тюрьмы, оказав ФБР некую особую экстраординарную помощь.

DevOps

  • Вышел релиз Testcontainers 1.9.0. Очень много ништяков, особенно под капотом:
    • A vastly improved way to expose host ports to containers;
    • Npipe support for Docker on Windows;
    • Many improvements to registry authentication;
    • Many updates and improvements to the Couchbase module;
    • И множество разных других вещей, посмотреть которые можно в ченжлоге.
  • GitHub запустил Experiments — площадку, на которой они будут публиковать свои исследования и открытия. Они предупредили, что не смогут выкладывать в открытый доступ вообще всё. Сейчас там есть, например, демка Semantic Code Search.
  • Microsoft анонсировали, что Azure Pipelines — их новый CI/CD сервис, являющийся частью Azure DevOps (в списке поддерживаемых технологий есть Java) предоставляет OSS-проектам бесплатно по 10 параллельных джобов с неограниченным количеством минут. Продвинутая интеграция с GitHub, поддержка контейнеров, и прочие ништяки. Для приватных проектов тоже, конечно, можно приобрести.
  • Релизнулся Immutable Storage для Azure Storage. Как понятно из названия, можно хранить блобы, которые нельзя модифицировать или удалить в течение определенного времени. Прайс на такие данные — совершенно такой же, как и для обычных изменяемых данных (см. цены на Azure Blob Storage).
  • Amazon релизнул новый Session Manager — браузерный GUI для простого управления инстансами Amazon EC2. Подробней и со скриншотами есть в официальном анонсе. Вкратце: выбираешь инстанс, нажимаешь «start session», открывается консоль до нужного сервера, включая Windows-сервера.
  • Вышел Linkerd 2.0 — новая версия продукта, дающего дашборды Grafana, и консольные утилиты для отладки (граф зависимостей, live просмотр запросов, итп) для любого сервиса Kubernetes. Вместо того, чтобы жирнеть, он наоборот похудел: ему не нужно кластерной установки, теперь это просто service sidecar для конкретного сервиса. Множество улучшений, включая модульный дизайн и UNIX-way утилиты для командной строки.

Фреймворки

  • Вышел Spock 1.2 — фреймворк для тестирования приложений на Java и Groovy.
    • Java 6, Groovy 2.0 and Groovy 2.3 больше не поддерживаются;
    • Зато Java 11 и выше, наоборот, поддерживается;
    • Поправлена гора багов;
    • Добавлена куча расширений и аннотаций;
    • И ещё множество фичей, о которых нужно прочитать в Release Notes.
  • После прошлого тройного релиза в мире Hibnernate тишь да гладь. Из новинок только поддержка в JHipster 5.3.0 свойства hibernate.connection.provider_disables_autocommit (касательно бага о том, что при попытке использовать LOB, всё падает, потому что они не могут участвовать в autocommit).
  • Мы немного припозднились с новостью, но лучше поздно, чем никогда. Вышел JHipster 5.3.0. Обновление JJWT до 0.10.5, NPM вместо Yarn, миграция на Spring Data Jest (потому что облака поддерживают Elasticsearch REST API, которого нет в Spring Data Elasticsearch), возможность использовать не только Bintray но и Maven Central в случае проблем синхронизации между ними для пользователей Gradle, и многое другое.

JetBrains

  • IntelliJ IDEA 2018.3 EAP3. Куча изменений, лучше всего смотреть статью в блоге с большим количеством скриншотов и пояснений.
  • Очередное стабильное обновление IntelliJ IDEA 2018.2.4, наиболее полно описанное в Release Notes. Исправления вроде — починить фризы, не показывать скоуп Android для не-Android проектов в окне Project, и так далее.
  • Выпущен Kotlin 1.3 RC. Корутины всё ближе и ближе!

Eclipse

  • В июне мы писали, что WildFly Swarm 2018.5.0 превратился в Thorntail 2.0.0. С тех пор вышли версии 2.1.0 и 2.2.0, в которых кроме багов добавились новые фичи:
    • Совместимость с MicroProfile 1.3
    • Реализация MicroProfile (SmallRye)
    • Автоматизированный процесс миграции со Swarm
      • mvn io.thorntail:thorntail-maven-plugin:2.1.0.Final:migrate-from-wildfly-swarm;
      • Из поставки выбросили OpenTracing, поэтому если используется Jaeger, нужно в зависимости вручную добавить microprofile-opentracing.
  • GlassFish полностью перенесён из Оракла в репозитории Eclipse Foundation. Ссылка на репозиторий. Напоминаем, что статус всех проектов можно посмотреть по этой ссылке. GlassFish продолжает основываться на спецификации JavaEE, и следующие большие задачи — перенести его на JakartaEE и опенсорсный TCK.
  • В Eclipse Ditto запилили selective push notifications.
  • Вышел Eclipse 4.9 (2018-09) — первый совместный релиз платформы по новому релизному циклу (каждые три месяца). Улучшения в редакторе и форматтере, возможность генерировать hashCode и equals, переработанные окна (включая диалог OpenType и квикфикс правильной версии JRE), улучшения в отладчике (например, возможность посмотреть, какой же командой запускалось приложение).
  • Вышли Xtext и Xtend 2.15, приуроченный к выпуску совместного релиза 2018-09. Улучшения в UI и редакторе. Более подробней стоит спросить у Когуня.
  • Вышел Eclipse Web Tools Platform (WTP) версии 3.11. Кроме того, что это по причине совместного релиза, поправили 11 багов.
  • Вышли EMF Forms и EMF Client Platform версии 1.18.0. Это фреймворки, являющиеся частью Eclipse Modeling Tools Photon, но их можно скачать и отдельно. Например, с помощью EMF Forms можно задавать формы не кодом, а с помощью простейших моделей. Поправлено 50 багов и прочих фиксов.

Spring

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

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