- PVSM.RU - https://www.pvsm.ru -

Java-дайджест за 6 марта

Java-дайджест за 6 марта - 1

  • Вышел очередной выпуск подкаста «Битовая Каска» [1] с Антоном Архиповым (@antonarhipov [2]). Антона, наверное, представлять не нужно, но всё-таки: Java-чемпион, менеджер по продукту в команде Kotlin, раньше работал в ZeroTurnaround. Подкаст помогает вести Кирилл Толкачёв, в остальном ведет стандартный состав.
  • Кстати, к нам приехал Kotlin 1.3.70 [3]. В комплекте — новые функции и классы в коллекциях стандартной библиотеки (например, kotlin.collections.ArrayDeque), улучшения в Kotlin-плагине в IntelliJ IDEA, компилятор Kotlin/JVM генерит type annotations в байткоде 8 джавы и выше, ускорилась сборка Kotlin Native и так далее.
  • Драйвера Oracle JDBC отныне лежат на Maven Central. Не только для свежей базы, а для всех: 19.3.0.0, 18.3.0.0, 12.2.0.1, 11.2.0.4. Все остальные артефакты, относящиеся к базе данных, теперь сгруппированы в com.oracle.database.* в Maven. Подробности здесь [4]. Мы пережили все эти годы мучений с подсовыванием джарок в разные странные места, давайте же выпьем за славную победу!

  • Вышла библиотека eo-yaml 3.0.0 [5]. В ней интересно, что она родилась после прочтения [6] книги «Elegant Objects» Егора Бугаенко. Не так грозен Егор, как его последователи: теперь у нас есть простой парсер YAML, который умеет работать с простыми случаями, пригодными для чтения YAML-конфигов. Более сложные штуки вроде стимов и алиасов ещё не реализованы.
  • Кстати, тот же самый товарищ пилит RESTful API для Docker, внутри там (судя по pom.xml) находится Glassfish. Только что вышла версия 0.0.11 [7]. Ясно, что использовать это не стоит, но можно посмотреть за ходом мысли. Ведь она по-настоящему объектно-ориентированная, если вы понимаете, о чём я.
  • Если уж на то пошло, держите еще одну мелкую библиотеку: update4j, только что вышла версия 1.4.5 [8]. Эта штука полезна для написания инфраструктуры, которая будет автоматически обновлять ваше приложение. Это именно библиотека, а не фреймворк — предполагается, что ты влезешь туда своими грязными руками и придумаешь собственный lifecycle приложения, а update4j будет только помогать. Есть документация [9]. Присутствует 251 коммит, 338 звездочки и 29 форков на GitHub.
  • Модераторы удалили пост «какая IDE вам больше нравится» [10] из r/java на Reddit. Пост про Project Loom [11], в котором автор требовал показать применения на проде, тоже удалили. Вот поэтому на Реддите ничего и нету. Всё нужно писать на Хабр — здесь бы это сразу улетело на главную :-)
  • Confluent анонсировали [12] Confluent Cloud на Microsoft Azure Marketplace. А до этого, напоминаю, они появились [13] в Google Cloud Platform (GCP) Marketplace. Добро пожаловать в мир managed Kafka!
  • Вышел GitLab 12.8.2 [14]. Этот релиз посвящен исключительно безопасности и касается бага, который с помощью directory traversal позволял прочитать произвольный файл. Забавно, что атаку на directory traversal чинили на этой неделе и в Spring Cloud, но между собой они не имеют ничего общего.
  • Обновился JEP 373 [15]: «Reimplement the Legacy DatagramSocket API». (Сделаю перевод на Хабр для коллекции ASAP).
  • Вышел Apache NetBeans 11.3 [16]. Кто-то им, видать, еще пользуется, потому что они запилили поддержку JSF 2.3 в автодополнении и даже реализовали поддержку рекордов согласно JEP 359 [17].
  • Непреклонные пользователи экосистемы Eclipse оценят выход очередной версии [18] Eclipse Communication Framework 3.14.7. Кроме багфиксов пополнился список проектов [19] на GitHub, посвященных Remote Services Development.
  • Пользователи JBoss Tools в новом релизе 4.14.0.AM1 [20] увидят чудо чудное — Quarkus Tools! Можно генерить новые проекты (на основе code.quarkus.io), в application.properties работает автодополнение и подсветка кое-каких ошибок, ну и конечно, приложение Quarkus можно штатно запускать в Run/Debug mode.

Spring

  • Джош Лонг (Josh Long) сделал Bootiful Podcast [21] c организатором Spring I/O и известным Spring-консультантом по имени Сержи Алмар (Sergi Almar).
  • А ещё Джош выпустил очередной эпизод «This Week in Spring» [22]. Текста мало, ссылок на статьи много.
  • Зарелизился [23] Spring Cloud Hoxton Service Release 3 (SR3) с исправленным CVE-2020-5405 [24]. Прошлые версии могли обрабатывать произвольные конфиги через spring-cloud-config-server, что дает хакеру возможность устроить атаку обходом директорий. Чего можно добиться такой атакой — непонятно, но возможно и чтения произвольного файла, так что фикс лучше бы накатить.
  • Зарелизился [25] Spring Security 5.3. В него вошли суммарно более 200 закрытых тикетов.
  • Зарелизились [26] Spring Session Dragonfruit-RC1, Corn-SR2 and Bean-SR10. Можно заглянуть [27] в Dragonfruit и увидеть, что они просто обновили всё до самой свежей версии и впилили тему GitHub для документации.

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

  • В официальном блоге Oracle подробно обсосали [28] тему перехода с Java EE на Jakarta EE. Там есть несколько ироничная табличка, в которой авторы переводят c русского на русский термины Java EE в термины/спецификации Jakarta EE. Например, JASPIC — это Jakarta Authentication, если вам вдруг почему-то было это интересно. Там же есть новые артефакты для Maven и таймлайн разработки спецификаций Jakarta EE. А ещё забавно, как он аккуратно обошёл вопрос существования EJB 2 :-)
  • Там же, в Java Magazine, стоит отметить статью «Java Flight Recorder and JFR Event Streaming in Java 14» [29]. А вот статья «Java 14 Arrives with a Host of New Features» [30] оказалась очередным переливанием из пустого в порожнее с перечислением все тех же JEP-ов для Java 14.
  • В блоге WiX Engineering приведен отличный пример [31], как довольно непривычная в джава-мире оптимизация ручного разворачивания циклов может в два раза ускорить эффективность и так уже эффективного алгоритма. Ну и как всегда в таких статьях, пара слов о GraalVM.
  • Жирный лонгрид на сайте Uber [32] про то, как тюнить память JVM для больших данных, держа в голове какой-нибудь HDFS. Много экспериментов, настроек, графиков. В целом, статья выглядит примерно как любая статья такого рода — брейндамп о том, чего они там крутили и что на что повлияло.
  • В блоге Helidon на Medium опубликовали статью [33] о том, что Helidon полностью поддерживает JPA 2.2, и это намного больше, чем тот упрощенный Java Persistence API, который вы обычно используете в Java SE, запуская Persistence.createEntityManagerFactory() и как-то управляя транзакциями. Тут всё как во взрослом Java EE application server, но только куда быстрее, легче и удобней.
  • Там же, в блоге Helidon на Medium появилась статья [34] про Helidon DB Client — универсальный реактивный API для работы с базами данных в неблокирующем стиле. Он реализован как уровень абстракции поверх JDBC и MongoDB Reactive Streams Java Driver, поэтому с ним заработают любые базы данных, имеющие в JDBC-драйвер, ну или MongoDB (если вам не страшно). Отвечая на невысказанный вопрос: да, оно работает с блокирующим JDBC, оборачивая его в executor service, а наружу всё это выглядит неблокирующе. Присутствует observability, backpressure и все другие слова, которые вы так любите.
  • Адам Бьен (Adam Bien) на стриме измеряет количество памяти [35], которую сожрало приложение Helidon/MicroProfile по сравнению с чистым свежеустановленным Jetty. В другом стриме [36] он смотрел на ответы HTTP JAX-RS, отличающиеся от HTTP 200 и микрофреймворки (quarkus and helidon, pippo, spincast). В еще одном стриме [37] он сравнивал количество запросов в секунду в формате Quarkus vs WildFly.
  • Свежая статья от Лукаса Эдера (Lucas Eder) «Using Java 13+ Text Blocks for Plain SQL with jOOQ» [38]. Жук жив! Лукас рассказывает, как можно использовать Жук, если его DSL нам не нужен. Думайте о нём, как о продвинутом JDBC, которому очень помогает возможность свежих Java клеить строки блоками.
  • Очередной выпуск Java Weekly [39] под номером 323 от Baeldung с чертовой свалкой ссылок на разные статьи без объяснения содержания.


Java-дайджест за 6 марта - 2Дайджест публикуется при поддержке JUG Ru Group и конференции JPoint. Следующий JPoint пройдет 15-16 мая в Москве, в большом и свободном Крокус Экспо. На сайте уже можно ознакомиться с частью программы [40] и приобрести билеты [40].

Автор: olegchir

Источник [41]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/348832

Ссылки в тексте:

[1] выпуск подкаста «Битовая Каска»: https://bitcask.live/2020/03/06/0x06-kotlindeep/

[2] @antonarhipov: https://twitter.com/antonarhipov

[3] приехал Kotlin 1.3.70: https://blog.jetbrains.com/kotlin/2020/03/kotlin-1-3-70-released/

[4] здесь: https://medium.com/oracledevs/all-in-and-new-groupids-oracle-jdbc-drivers-on-maven-central-a76d545954c6

[5] eo-yaml 3.0.0: https://github.com/decorators-squad/eo-yaml

[6] после прочтения: https://amihaiemil.com/2017/09/01/data-should-be-animated-not-represented.html

[7] версия 0.0.11: https://www.reddit.com/r/java/comments/fchc5l/java_api_for_docker_0011_released/

[8] версия 1.4.5: https://github.com/update4j/update4j

[9] документация: https://github.com/update4j/update4j/wiki/Documentation

[10] «какая IDE вам больше нравится»: https://www.reddit.com/r/java/comments/fdvtvs/what_ide_do_you_guys_prefer_and_why/

[11] Пост про Project Loom: https://www.reddit.com/r/java/comments/fdpxrf/are_there_any_samples_using_real_project_loom/

[12] анонсировали: https://www.confluent.io/blog/confluent-cloud-managed-kafka-service-azure-marketplace/

[13] появились: https://www.confluent.io/blog/confluent-cloud-managed-kafka-service-gcp-marketplace/

[14] GitLab 12.8.2: https://about.gitlab.com/releases/2020/03/04/gitlab-12-dot-8-dot-2-released/

[15] JEP 373: https://openjdk.java.net/jeps/373

[16] Apache NetBeans 11.3: https://netbeans.apache.org/download/nb113/index.html

[17] JEP 359: https://openjdk.java.net/jeps/359

[18] очередной версии: http://eclipseecf.blogspot.com/2020/03/ecf-3147-released.html

[19] список проектов: https://github.com/ECF

[20] в новом релизе 4.14.0.AM1: https://tools.jboss.org/blog/4.14.0.am1.html

[21] сделал Bootiful Podcast: https://spring.io/blog/2020/03/06/a-bootiful-podcast-spring-i-o-organizer-and-spring-trainer-extraordinairre-sergi-almar

[22] «This Week in Spring»: https://spring.io/blog/2020/03/03/this-week-in-spring-march-3rd-2020

[23] Зарелизился: https://spring.io/blog/2020/03/05/spring-cloud-hoxton-service-release-3-sr3-is-available

[24] CVE-2020-5405: https://pivotal.io/security/cve-2020-5405

[25] Зарелизился: https://spring.io/blog/2020/03/05/spring-security-5-3-goes-ga

[26] Зарелизились: https://spring.io/blog/2020/03/04/spring-session-dragonfruit-rc1-corn-sr2-and-bean-sr10-released

[27] заглянуть: https://github.com/spring-projects/spring-session/milestone/73?closed=1

[28] подробно обсосали: https://blogs.oracle.com/javamagazine/transition-from-java-ee-to-jakarta-ee

[29] «Java Flight Recorder and JFR Event Streaming in Java 14»: https://blogs.oracle.com/javamagazine/java-flight-recorder-and-jfr-event-streaming-in-java-14

[30] «Java 14 Arrives with a Host of New Features»: https://blogs.oracle.com/javamagazine/java-14-arrives-with-a-host-of-new-features

[31] приведен отличный пример: https://medium.com/wix-engineering/an-interesting-case-of-loop-unrolling-8ea04cf08959

[32] лонгрид на сайте Uber: https://eng.uber.com/jvm-tuning-garbage-collection/

[33] опубликовали статью: https://medium.com/helidon/helidon-and-jpa-da20492f5395

[34] появилась статья: https://medium.com/helidon/helidon-db-client-e12bbdc85b7

[35] измеряет количество памяти: http://adambien.blog/roller/abien/entry/helidon_s_memory_footprint_vs

[36] другом стриме: http://adambien.blog/roller/abien/entry/non_200_http_jax_rs

[37] еще одном стриме: http://adambien.blog/roller/abien/entry/quarkus_vs_wildfly

[38] «Using Java 13+ Text Blocks for Plain SQL with jOOQ»: https://blog.jooq.org/2020/03/05/using-java-13-text-blocks-for-plain-sql-with-jooq/

[39] Java Weekly: https://www.baeldung.com/java-weekly-323

[40] частью программы: https://jpoint.ru/registration/?utm_source=habr&utm_medium=491362

[41] Источник: https://habr.com/ru/post/491362/?utm_campaign=491362&utm_source=habrahabr&utm_medium=rss