-
Рон Пресслер собрал и выложил новый «официальный» прототип Project Loom (файберы для Java). В качестве основы используется JDK 14. Скачать можно здесь, прочитать анонc можно здесь. Люди потихоньку начинают втягиваться в тему, и на GitHub уже лежит несколько проектов, использующих Loom: Loom Date Server, Fibry (реализация акторов с поддержкой файберов), RxJavaFiberInterop (мост между RxJava 3 и Loom), и пара примеров использования Loom (раз, два). На всякий случай напоминаю, что Рон есть на Reddit, временами он пишет туда анонсы и оставляет хорошие развернутые комментарии.
-
InfernoPlus опубликовали видео про то, как сделали фанатскую игру в жанре Battle Royale про Super Mario, которая неожиданно хайпанула. На бэке там были Java + Tomcat. Конец истории: авторам позвонили из Nintendo и пообещали засудить, из-за чего игрушку пришлось убить.
-
Зарелизилась Debezium 1.0.0, которая называет себя лучшей Java-библиотекой для CDC (Change Data Capture). У них даже есть собственный сайт с FAQ. CDC — это про то, чтобы записывать события изменения данных. Конечно, можно притащить Hibernate Envers, но это добавит оверхеда в рантайме. Вместо этого можно читать события изменений прямо из redo log базы данных — парсить его и как-то реагировать, чем и занимается Debezium. Причем делает она это в асинхронном режме, т.е. не затормаживая ваше OLTP приложение. Поддерживаются не только Oracle, MySQL, PostgreSQL (интуитивно понятно, что лог нужен для обеспечения D в ACID), но и для MongoDB. Подробней можно прочитать в статье Vlad Mihalcea.
-
Некто eXsio выложил на GitHub QueryDSL EntityQL — небольшую библиотечку на 28 коммитов, которая позволяет делать Native SQL запросы с помощью JPA Entities в виде fluent API. Секрет в том, что она использует рефлексию, чтобы собрать всю DDL информацию и построить метамодель QueryDSL. Метамодели собираются в оперативной памяти, кодогенерации на файловой системе не требуется.
-
Vincenzo Palazzo продолжает украшать Swing, только что выпущена версия v1.1.1-beta библиотеки material-ui-swing. По ссылке есть скриншоты и гифки.
-
28 ноября, оказывается, зарелизился Apache Camel 3. В дайджесты это не попало, потому что тогда еще не было дайджестов. Лучше поздно, чем никогда. Теперь Camel — это семейство из нескольких проектов, в том числе Camel 3 (известная нам во всех интеграционных бочках затычка), Camel K (Serverless, Kubernetes, Knative), Camel Quarkus. Официально поддерживается Java 11. Ядро
camel-core
распилили из единой мега-помойки на 33 JAR-файла, API лежат вcamel-api
, а вcamel-support
лежитRouteBuilder
и всевозможные базовые классы, полезные для разработки плагинов. Всё стало работать быстрее и жрать меньше памяти. Добавили DSL для типобезопасного описания ендпоинтов (вместо адских URI в строках). Внутри движка добавили реактивщины, и как только Java 11 станет минимально поддерживаемой версией (на этих словах кто-то закашлялся и упал в обморок), внешний интерфейс тоже станет работать на Java 9 Flow API. Добавили интеграцию с Microprofile и сделали демки полностью standalone приложений, которые начинаются с запуска Camel. Короче, жить стало лучше, жить стало веселее. -
Вышла Kafka 2.4, из интересного — брокер теперь может перебрасывать на ближайшую реплику (в облачной среде это большие деньги). Запилили новое Java Authorizer API, который позволяет обойти головняки, которые раньше были с
kafka.security.auth.Authorizer
. -
Моментально с выходом Кафки, вышла и соответствующая Spring for Kafka 2.4 RC1. Всё то же самое, что для 2.3, только скомпилированное для новой версии клиентов, и с поддержкой нового протокола балансировки.
-
Объявлены даты EOL для Spring Cloud Hoxton и Greenwich, а следующий мажорный релиз будет называться Ilford. Кроме того, выпущен Hoxton Service Release 1 (SR1). Там одни багфиксы, надо обновляться.
-
Еще больше про Spring можно прочитать в еженедельнике Джоша Лонга. Есть выпуск за 18 декабря и за 24 декабря. Кстати, в 2020 году Джош празднует юбилей, 10 лет работы в команде Spring, и соответственно — десять лет дайджесту.
-
Дмитрий Жемеров опубликовал роадмап IntelliJ Platform на 2020 год. Есть перевод на русский язык в хабраблоге компании JetBrains.
-
Вышла IntelliJ IDEA 2019.3.1. Поправили несколько неприятных багов. Например, пользователям нескольких мониторов больше не нужно перетаскивать окна на второй монитор после запуска Идеи. Пофиксили чудовищный баг, когда локальный Tomcat запускался раньше, чем Maven отработает сборку.
-
Вышел Eclipse 2019-12. Из Java 13 добавили switch expressions и text blocks. На YouTube есть ролик с описанием новых фичей, которые зачитываются диктором с жестким «новостным» акцентом. Очевидно, вместе с этим обновилась Eclipse Web Tools Platform и тому подобное — перечислять бесконечный спискок IDE на основе Eclipse не имеет смысла.
-
Сразу на нескольких IDE-платформах (Eclipse, Visual Studio Code, Theia) вышли Spring Tools 4.5.0. Конечно, в первую очередь это связано с новой версией Eclipse, но они починили какие-то небольшие баги и сделали косметические улучшения.
-
Jens Reimann продолжает постить небольшие новости про статус Eclipse IoT. В новом посте он рассказал про внедрение Helm Charts, начали они с Ditto.
-
Gregor Riegler опубликовал видео о том, как на практике делается Lift Up Conditional Refactoring. Связанное обсуждение на Reddit.
-
Опубликовано интервью с Krzysztof Ciesielski — автором Alpakka Kafka (откуда оно взялось и что это такое — описано в статье).
-
Google Cloud Spanner наконец-то зарелизили официальный диалект для Hibernate. В статье имеется рабочий пример на GitHub, где в качестве платформы используется Quarkus.
-
Google Cloud анонсировали фреймворк AutoML Natural Language. С помощью него можно извлекать из текстов инсайты, заниматься их дешевой классификацией и организацией обратной связи от клиентов — то есть, примерно то, что в отчете 2020 state of enterprise machine learning посчитали основными применениями машинного обучения в 2020 году.
-
Square (те, которые мерчант-агрегатор) выпустили новое SDK для Java.
-
Недавняя дискуссия на Reddit подтверждает, что GraalVM пошел в массы — люди еще не научились гуглить, но уже хотят все запускать на Граале.
Habr
- Дмитрий Жемеров опубликовал роадмап IntelliJ Platform на 2020 год.
- Статья ashofthedream про ужасы реактивного программирования с кучей примеров кодом.
- «Исследуем бинарные форматы на примере байткода .class файла» esavin. Лютый жесткач. Несмотря на то, что речь идёт о проекте времен Java 6, подход всё равно интересный: автор размечает бинарную структуру аннотациями вида
@FieldOrder(index = 1)
и потом смотрит структуру в отладчике. - Вторая часть статьи про написание Telegram-бота от dp_ua. Первая была опубликована 4 декабря, ссылка.
- «Как Kafka стала болью» — статья из блога компании Тинькофф Банк про то, как они поменяли IBM MQ на Kafka и начали жить с exactly once delivery.
- Топ 10 ошибок в проектах Java за 2019 год опубликован Валерием Комаровым в блоге компании PVS-Studio. Обратите внимание, что в комментарии пришел lany :-)
- Отчет про встречу jug.msk.ru с Алексеем Рагозиным, про новые и старые возможности Java Flight Recorder в OpenJDK 11.
- AGregory публикует конспекты книги Чеда Фаулера «Программист-фанатик». Первая, вторая, третья части.
- В блоге компании OTUS перевели на русский статью Grzegorz Piwowarek про
allOf
иanyOf
в CompletableFuture — что с ними не так и как их можно сделать более удобными. - FunCorp анонсировали конкурс для бэкенд-разработчиков «FunCode Java/Kotlin challenge» с суммарным призовым фондом в 550 000 рублей.
Картинка Для Привлечения Внимания предоставлена фотографом Bryson Hammer и сделана в канадском городе Кокран, на территории Bow Valley High School. Bryson специализируется на фотографиях холодных северных окраин, гор и живущей там живности.
Автор: Олег Чирухин