Этот дайджест взаимодополняет выпуск подкаста «Разбор Полётов». На этот раз в студии были Виктор Гамов, Барух Садогурский и Олег Чирухин. Получить запись подкаста можно либо пройдя по ссылке на сайт РП, либо скачав MP3-файл.
- Вышла Apache Kafka 2.0. 178 коммитов. Какие из запланированных фичей вошли в релиз, можно посмотреть здесь. Ключевые фичи, скорей всего, расскажет Виктор Гамов в полноформатном выпуске «Разбора Полётов» — следите за выпусками!
- Вышел GitLab 11.1. Изменений относительно 11.0 очень много, и их лучше смотреть на картинках. Есть фичи, которые доступны только с платной подпиской, например, Security Dashboard доступен только в версиях gold и ultimate, которые стоят 99$/мес. Из бесплатного интересное:
- инициализация README при создании проекта как на Гитхабе;
- улучшенный поиск по файлам;
- подпиленный в нескольких местах дизайн (виджет мерджа, окно коммита в WebIDE, и т.п.);
- переключение между группами в виде выпадающего списка в главном меню;
- просмотр описания мерджа прямо в Web IDE, рядом с кодом;
- Markdown теперь рендерится с помощью CommonMark вместо Redcarpet (меньше багов, быстрее);
- перенос проектов между неймспейсами с помощью API;
- из API видно, что merge request находится в locked state (т.е. находится в процессе мерджа);
- и многое другое (см. release notes).
- Вышел HashiCorp Consul 1.2.1. Релиз отличается публичной бетой Consul Connect — «service-to-service connection authorization and encryption using mutual TLS». Можно использовать sidecar proxies, которые будут прозрачно заворачивать трафик между сервисами и приложениями в TLS, так что сами приложения о них даже знать не будут. Архитектура такова, что можно не писать велосипеды и использовать уже существующие cloud-native прокси, например, Envoy.
- Обновлён список Java Champions. 18 «новичков».
- 24-26 июля прошёл Google Cloud Next ’18.
- Анонсирован [Knative] — основанная на Kubernetes платформа для сборки и раскатывания современных serverless-систем, а также управления ими. Код лежит на GitHub и написан, к сожалению, не на Java, а на Golang. С другой стороны, Pivotal (компания, которая стоит за Spring) официально подключилась к его разработке. Возможно, мы скоро увидим какие-то куски интеграции со Spring Cloud.
- Анонсирован Google Cloud Functions. Никакого управления серверами, платишь только за реально выполняющийся код. Пока что писать функции можно только на JS и Python. Но джавистам всё равно придётся поиметь головняк, если кто-то захочет встроить это в джавовую инфраструктуру: например, одним из основных сценариев использования заявлена интеграция сервисов/API и event-driven extract-transform-load (ETL), и это звучит разумно. Бесплатно попробовать здесь
- Анонсирован Google Cloud Build — CI/CD с нативной поддержкой Docker, 120 бесплатными билдо-минутами в день в облаке (до 10 джобов одновременно), поиском уязвимостей в коде и артефактах и возможностью запускать сборку не только в облаке, но и локально.
Книги
- Если вы уже забыли, кто такой Мартин Фаулер, то он вам напомнит! Прямо сейчас на печать отправилась вторая часть его книги «Refactoring», изначально опубликованной в 1999 году. С тех пор многое изменилось, о чём он подробно рассказывает в статье. Возможно, книга будет на полках магазинов США этой осенью, но Amazon объявил предзаказ только на 31 декабря. То чувство, когда Дед Мороз существует, и его зовут Мартин.
- Анонсирована русская версия книги Егора Бугаенко «Элегантные объекты. Java Edition». Искренне поздравляем Егора с международным признанием! Кстати, на Хабре уже открылся портал в ад в комментариях к анонсу, что для произведений Егора является совершенно обычным уже явлением. В принципе, автор присутствует на Хабре под ником yegor256, и можно попробовать позадавать ему вопросы.
JDK
- До людей потихоньку продолжает доходить про 25$/мес за процессор — стоимость поддержки Java. На этот раз обсуждение разгорелось на Хабре.
- В OpenJDK 11 появился
Optional.isEmpty()
, который делает ровно то, что понятно из названия. Мотивация в том, что когда пишешь или ревьюишь код вида!Optional.isPresent()
, легко потерять восклицательный знак. Кроме того, такой метод по стилю очень сочетается с уже существующимиString.isEmpty()
,Collection.isEmpty()
,Map.isEmpty()
. - В OpenJDK 11 появился
Collection.toArray(IntFunction)
— transfer-конструктор массива на основе элементов коллекции.
- Вышел Q3 Critical Patch Update, которые Oracle продолжает производить регулярно как часы. Восемь новых патчей на Java SE и Java SE Embedded (6, 7, 8, 10). Всё это CVE, которые могут быть удалённо (по сети) использованы без какой-либо аутентификации.
- В GraalVM добавилась опция
--nashorn-compat
, которая может упростить миграцию с исчезающего из JDK Nashorn (согласно JEP 335) на GraalVM. Про фичу на Medium подробно написал Christian Wirth (менеджер, отвечающий за Graal.js и TruffleRuby). Интересно, что Jim Laskey (Director of Software Development в Oracle) в одном из интервью отозвался про поддержку Nashorn так: «With the rapid pace at which ECMAScript language constructs, along with APIs, are adapted and modified, we have found Nashorn challenging to maintain». Так что если кому-то придёт в голову безумная идея тащить поддержку Nashorn самостоятельно, то есть все причины прямо сейчас остановиться и не делать этого. - Вместе с этим, портал Jaxenter провёл интересное интервью с Thomas Wuerthinger, который рассказал, что амбиции GraalVM куда шире, чем просто заново реализовать API Nashorn. Напоминаю, что Graal.js уже сейчас работает сильно быстрей Nashorn, реализует куда больше фичей ECMAScript, умеет запускать приложения Node.js и многое другое.
- В интервью порталу ITJungle , Jesse Gorzinski (IBM i architect for open source) сказал, что IBM вписывается в поддержку Java 11 для IBM i (операционка, которая начиная с 2008 года работает на IBM Power Systems — та самая, что началась как OS/400 в 1988 году). Они очень боятся, что что-нибудь отвалится, но постараются минимизировать проблемы. Именно поэтому они пропустили Java 9 и 10 и сразу перепрыгивают на LTS. Точных дат пока не называется. Показательно, что даже такой enterprise-монстр всё-таки решается перейти на Java 11. Возможно, вам тоже стоит это сделать.
JetBrains
- Скидка на все продукты — 50%. Изначально скидка была ограничена 50 часами, сейчас остались считаные часы.
- Долгожданный релиз IntelliJ IDEA 2018.2. Тачбар для макбуков, Java 11, Breakpoint Intentions, улучшения в Spring Boot и VCS и многое другое. Изменений довольно много, ознакомиться со списком можно на официальном сайте.
- И тут же вышел EAP 2018.2.1, в котором уже поправили пару мажорных багов и заявлено направление на улучшение поддержки Groovy 3.0.
- Kotlin 1.3 Preview. Корутины больше не экспериментальные!
Eclipse
- Окончательно релизнулся Eclipse Photon. Скачать можно с официального сайта. Напоминаем, это релиз, направленный на сильное улучшение usability и допилку важных мелочей вроде тёмной темы.
- В прошлом анонсе мы рассказывали про Eclipse OpenMobility Working Group. В Эклипсе рабочих групп хватит на множество анонсов 🙂 На этот раз Eclipse IoT Working Group делает однодневную конференцию/митап Eclipse IOT Day, посвященную Industry 4.0, fog computing, smart homes и другим вашим любимым баззвордам. Короче, Eclipse — это не только Eclipse IDE.
- В блоге Eclipse появилась очередная интересная заметка про то, как движется вперед Jakarta EE. В ней обсуждается нелёгкая трансформация технологии из проприетарной в открытую.
Spring
- Выходит Spring Framework 5.1 RC1.
- В явном виде поддержка и заточка на JDK 11 (как минимум, отсутствие warnings про classpath и module path);
- Шаги в сторону поддержки GraalVM и SVM native-image;
- ObjectProvider доступен через BeanFactory API. Теперь он extends
Iterable
и поддерживает стримы:stream()
как в коллекциях,Iterable.forEach(java.util.function.Consumer<? super T>)
, может использоваться в циклахfor
; - Обновлённые дефолты для веба (например, в части куков);
- Spring WebFlux работает на Reactor Californium;
- Заточка на Hibernate ORM 5.3, которая позволяет смешивать Hibernate SessionFactory и JPA EntityManagerFactory даже в рамках одной транзакции;
- RC2 будет в августе, GA будет в сентябре;
- На этой или следующей неделе появится поддержка в start.spring.io и Spring Boot 2.1 M1.
- Продолжаем наблюдать за развитием SCDF, успехи которого есть в каждом нашем дайджесте за последний месяц. Итак, вышел Spring Cloud Data Flow 1.6 RC1
- валидация cron-подобных правил в PCF Scheduler
- просмотр истории на дашборде
- благодаря обратной связи от комьюнити ~~выгребли ад~~ улучшили дизайн базы данных
Hibernate
- Вышел Hibernate ORM 5.3.3.Final. Это maintenance-релиз в третьей цифре, но в нем как всегда творится пир духа из 38 багов, пяти улучшений и 18 просто каких-то задачек. Часть этих проблем не пофикшена в 5.2, поэтому авторы предлагают обновляться сразу на 5.3.3, о чём написали открытым текстом.
- Вышел Hibernate Search 5.10.3.Final. Сейчас они активно заняты попыткой допилить альфа-версию Hibernate Search 6, но и пятёрку тоже не бросают. В release notes есть исправление парочки совсем минорных багов в документации, 4 улучшения и 10 каких-то задачек вида «обновиться до Byteman 4.0.4», «обновиться до Hibernate ORM 5.3.2».
Дайджест готовили
- Текстовая версия: Олег Чирухин (контент, верстка, проверка фактов) и редакция JUG.ru Group;
- Подкаст «Разбор Полётов» (ссылка на запись): Виктор Гамов, Барух Садогурский и Олег Чирухин.