Java-дайджест за 4 мая

в 15:50, , рубрики: java, Программирование

Java-дайджест за 4 мая - 1

  • Вышла совершенно новая библиотека Enriched Beans — генератор исходников, совместимый с JSR 330: Dependency Injection for Java. Конкретно, генерит он фабрики, совместимые с фреймворками вроде Spring и Micronaut. Работает примерно как AutoFactory, может использоваться вместе с Lombok. В смысле, если в Guice вам нужно писать конструктор руками, то тут можно подцепить то, что сгенерил Lombok. Получаются простые POJO, каждое генерируемое поведение можно менять/подменять/оборачивать как хочешь, нормально работает автодополнение в IDE, код более-менее ООП-шный. Если перечисленные аббревиатуры ничего не говорят — проходите мимо :) Из минусов — 1 контрибьютор, 18 коммитов, насколько хорошо это работает — никому не ведомо.
  • Вышла OmniFaces 3.6 — библиотека утилит для Java Server Faces (JSF). Эти утилиты решают простые повседневные проблемы, заменяют все ваши JSFUtils и FacesUtils с одним и тем же скопипащенным кодом, кочующим из проекта в проект. В свежей версии добавилась очередная пачка методов-утилит, WebAppManifestResourceHandler (генерит manifest.json на основе полей CDI-бина), <o:scriptParam> (используется в компонентах UIOutcomeTarget вроде <h:link> для MultiViews).
  • Вышла IntelliJ IDEA 2020.1.1. Несколько фиксов, добавилась официальная поддержка Apache Tomcat 10. Ченжлог по ссылке.

Java Platform

  • Вышло исследование LampStudy, которое утверждает, что Java — вторая по востребованности платформа разработки. На первом месте, как вы и ожидали, JavaScript. Фронтенд сам себя десять раз в год не перепишет.
  • Обратите внимание на JEP 374: Disable and Deprecate Biased Locking. JEP довольно новый (начало этого года), и сейчас активно собирается фидбэк от коммитеров и ревьюеров. Дедлайн — пятница, 8 мая, 23:59 UTC. Если все проблемы решат к дедлайну, то согласно процессу JEP 2.0, этот JEP отправится в JDK 15.
  • Другой JEP, который предлагается добавить в JDK 15 — JEP 373: Reimplement the Legacy DatagramSocket API. Текущие реализации java.net.DatagramSocket и java.net.MulticastSocket — дремучее легаси 20-летней давности, отлаживать и поддерживать которое невозможно. Предлагается переписать их с нуля с учётом появления Project Loom. Можно считать это продолжением истории из JEP 353: Reimplement the Legacy Socket API.
  • Добро пожаловать во второе превью JEP 375: Pattern Matching for instanceof для JDK 15. Во-первых, нужно продолжать тестить. Во-вторых, было что-то нездоровое с деконструкцией рекордов: вначале их добавили, а потом снова убрали (подробности в тикете). Пофиксили баг с мусором в байткоде. Можно даже сказать, двойные превью — новая норма, смотрите доклад Доктора Депрекатора.

Spring

  • Вышел Spring Boot 2.3.0.RC1. В новом релиз-кандидате: автоконфигурация Wavefront-сендера, упрощенная конфигурация конвертации даты и времени для веб-приложений, автоматическое создание конфигурации developmentOnly для Gradle, поддержка недавно появившегося проекта Paketo.
  • Вышел релиз-кандидат Spring for Apache Kafka 2.5.0. Умеет работать с kafka-clients 2.5.0 (совпадение номеров версий — совершенно случайно!), добавили кафковой специфики про переотправку в случае кооперативной ребалансировки, fetch-offset-request для брокеров версии 2.5 и выше, улучшили интеграцию с Micrometer, сделали простой сериализатор и десериализатор String, в JsonDeserializer можно определять создаваемый тип и так далее. Полный список фичей есть здесь. Если руки зачесались обновиться, вспомните, что это всё ещё релиз-кандидат :)
  • Появилась пачка обновлений Spring Integration 5.3 RC1, 5.2.6 & 5.1.10. Описание изменений потребовало бы перечислять длинный список классов, и что с ними сделали, поэтому лучше сразу пройти в ченжлог.

Сервисы

  • Google добавили в Cloud Spanner набор интересных фичей. Cloud Spanner — это глобальная распределенная база данных для Google Cloud Platform. Из интересных фичей — управляемый бэкап, который как-то компенсирует логические ошибки в приложениях. Бэкапы жестко оптимизируются на скорость развертывания, поэтому новый инстанс может развернуться из бэкапа за считаные минуты, даже если там бешеные терабайты данных. Теоретически.

Статьи, подкасты, стримы

  • Наш друг и известный докладчик Себастиан Дашнер выпустил очередное 7-минутное видео о том, как отлаживать тесты в контейнере, когда у вас Quarkus.
  • Другой наш друг и докладчик, Джош Лонг, выпустил очередной Bootiful Podcast, в котором беседует с Адрианом Коулом — сооснователем Feign, JClouds и Spring Cloud Sleuth. Кроме того, Адриан — один из основных контрибьюторов в OpenZipkin.
  • Сколько памяти было впустую потеряно при добавлении нового булевского значения в java.lang.String в JDK 13? Нисколько. Шок-контент по ссылке.
  • Интересная статья «A New Era of Spring Cloud» от Петра Миньковски (Piotr Mińkowski) о том, как жить в непростые времена, когда почти все компоненты Spring Cloud Netflix заморожены на поддержку еще со времен трейна Greenwich, а вместо них выкатили что-то совершенно новое. Забавно, что Spring Cloud Netflix всё ещё самый популярный проект Spring (около 4 тысяч звездочек на GitHub), и можно понять, почему!
  • В блоге Amis Technology появилась статья с графиками производительности, в которых соревнуются блокирующие и неблокирующие технологии экосистемы Spring: R2DBC против JDBC и WebFlux против Web MVC.
  • Алмас Баимагамбетов пишет на JavaFX анимированное диалоговое окно.
  • Адам Биен продолжает жечь на стримах, на этот раз он полез в браузер и конкретно — querySelector и querySelectorAll. При чем тут Java — понятно постоянным зрителям этих стримов, всё складывается в картинку. Я просто открываю его на отдельном мониторе и слушаю параллельно с другими делами.
  • Наш домашний подкаст «Битовая Каска» провёл живой стрим выпуска с легендарным предводителем JUG Ru Group, Алексеем Фёдоровым. Правильно оформленная запись подкаста появится в сети позже, когда мы обработаем звук.
  • Я на канале JavaWatch пытался завести технологии из набора Project Leyden. В целом, не обнаружил какого-то серьезного ускорения на Windows, что ожидаемо, тем более что PowerShell в Windows — очень сомнительный метод измерения с чудовищным разбросом. По юзабилити — в JDK 11 был баг, не позволявший собирать на Visual Studio 2019, пришлось использовать JDK 14. Сборка java.base вывалила какую-то тонну ошибок, но собрало. so-шник через jaotc генерируется, exe-шник — нет. jlink — это много возни. Сравнить с GraalVM не получилось — native-image для Windows падал с какой-то внутренней ошибкой. Ждем и надеемся на лучшее!


Java-дайджест за 4 мая - 2Дайджесты публикуются при поддержке JUG Ru Group и конференции JPoint. Зарегистрироваться на летнюю онлайн-конференцию можно на официальном сайте.

Автор: Олег Чирухин

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js