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

Рон Пресслер собрал и выложил новый «официальный» прототип Project Loom (файберы для Java). В качестве основы используется JDK 14. Скачать можно здесь [1], прочитать анонc можно здесь [2]. Люди потихоньку начинают втягиваться в тему, и на GitHub уже лежит несколько проектов, использующих Loom: Loom Date Server [3], Fibry [4] (реализация акторов с поддержкой файберов), RxJavaFiberInterop [5] (мост между RxJava 3 и Loom), и пара примеров использования Loom (раз [6], два [7]). На всякий случай напоминаю, что Рон есть на Reddit [8], временами он пишет туда анонсы и оставляет хорошие развернутые комментарии.
InfernoPlus опубликовали видео [9] про то, как сделали фанатскую игру в жанре Battle Royale про Super Mario, которая неожиданно хайпанула. На бэке там были Java + Tomcat. Конец истории: авторам позвонили из Nintendo и пообещали засудить, из-за чего игрушку пришлось убить.
Зарелизилась Debezium 1.0.0 [10], которая называет себя лучшей Java-библиотекой для CDC (Change Data Capture). У них даже есть собственный сайт [11] с FAQ. CDC — это про то, чтобы записывать события изменения данных. Конечно, можно притащить Hibernate Envers [12], но это добавит оверхеда в рантайме. Вместо этого можно читать события изменений прямо из redo log базы данных — парсить его и как-то реагировать, чем и занимается Debezium. Причем делает она это в асинхронном режме, т.е. не затормаживая ваше OLTP приложение. Поддерживаются не только Oracle, MySQL, PostgreSQL (интуитивно понятно, что лог нужен для обеспечения D в ACID), но и для MongoDB [13]. Подробней можно прочитать в статье Vlad Mihalcea [14].
Некто eXsio выложил на GitHub QueryDSL EntityQL [15] — небольшую библиотечку на 28 коммитов, которая позволяет делать Native SQL запросы с помощью JPA Entities в виде fluent API. Секрет в том, что она использует рефлексию, чтобы собрать всю DDL информацию и построить метамодель QueryDSL. Метамодели собираются в оперативной памяти, кодогенерации на файловой системе не требуется.
Vincenzo Palazzo продолжает украшать Swing, только что выпущена версия v1.1.1-beta [16] библиотеки material-ui-swing. По ссылке есть скриншоты и гифки.
28 ноября, оказывается, зарелизился Apache Camel 3. В дайджесты это не попало, потому что тогда еще не было дайджестов. Лучше поздно, чем никогда. Теперь Camel — это семейство из нескольких проектов, в том числе Camel 3 [17] (известная нам во всех интеграционных бочках затычка), Camel K [18] (Serverless, Kubernetes, Knative), Camel Quarkus [19]. Официально поддерживается Java 11. Ядро camel-core распилили из единой мега-помойки на 33 JAR-файла, API лежат в camel-api, а в camel-support лежит RouteBuilder и всевозможные базовые классы, полезные для разработки плагинов. Всё стало работать быстрее и жрать меньше памяти. Добавили DSL для типобезопасного описания ендпоинтов (вместо адских URI в строках). Внутри движка добавили реактивщины, и как только Java 11 станет минимально поддерживаемой версией (на этих словах кто-то закашлялся и упал в обморок), внешний интерфейс тоже станет работать на Java 9 Flow API [20]. Добавили интеграцию с Microprofile и сделали демки полностью standalone приложений, которые начинаются с запуска Camel. Короче, жить стало лучше, жить стало веселее.
Вышла Kafka 2.4 [21], из интересного — брокер теперь может перебрасывать [22] на ближайшую реплику (в облачной среде это большие деньги). Запилили новое Java Authorizer API [23], который позволяет обойти головняки, которые раньше были с kafka.security.auth.Authorizer.
Моментально с выходом Кафки, вышла и соответствующая Spring for Kafka 2.4 RC1 [24]. Всё то же самое, что для 2.3, только скомпилированное для новой версии клиентов, и с поддержкой нового протокола балансировки.
Объявлены [25] даты EOL для Spring Cloud Hoxton и Greenwich, а следующий мажорный релиз будет называться Ilford. Кроме того, выпущен Hoxton Service Release 1 (SR1) [26]. Там одни багфиксы [27], надо обновляться.
Еще больше про Spring можно прочитать в еженедельнике Джоша Лонга. Есть выпуск за 18 декабря [28] и за 24 декабря [29]. Кстати, в 2020 году Джош празднует юбилей, 10 лет работы в команде Spring, и соответственно — десять лет дайджесту.
Дмитрий Жемеров опубликовал роадмап [30] IntelliJ Platform на 2020 год. Есть перевод на русский язык [31] в хабраблоге компании JetBrains.
Вышла IntelliJ IDEA 2019.3.1 [32]. Поправили несколько неприятных багов. Например, пользователям нескольких мониторов больше не нужно [33] перетаскивать окна на второй монитор после запуска Идеи. Пофиксили чудовищный баг [34], когда локальный Tomcat запускался раньше, чем Maven отработает сборку.
Вышел Eclipse 2019-12 [35]. Из Java 13 добавили switch expressions и text blocks. На YouTube есть ролик [35] с описанием новых фичей, которые зачитываются диктором с жестким «новостным» акцентом. Очевидно, вместе с этим обновилась Eclipse Web Tools Platform [36] и тому подобное — перечислять бесконечный спискок IDE на основе Eclipse не имеет смысла.
Сразу на нескольких IDE-платформах (Eclipse, Visual Studio Code, Theia) вышли Spring Tools 4.5.0 [37]. Конечно, в первую очередь это связано с новой версией Eclipse, но они починили какие-то небольшие баги и сделали косметические улучшения.
Jens Reimann продолжает постить небольшие новости про статус Eclipse IoT. В новом посте [38] он рассказал про внедрение Helm Charts, начали они с Ditto.
Gregor Riegler опубликовал видео [39] о том, как на практике делается Lift Up Conditional Refactoring. Связанное обсуждение на Reddit [40].
Опубликовано интервью с Krzysztof Ciesielski [41] — автором Alpakka Kafka (откуда оно взялось и что это такое — описано в статье).
Google Cloud Spanner наконец-то зарелизили [42] официальный диалект для Hibernate. В статье имеется рабочий пример на GitHub, где в качестве платформы используется Quarkus.
Google Cloud анонсировали фреймворк AutoML Natural Language [43]. С помощью него можно извлекать из текстов инсайты, заниматься их дешевой классификацией и организацией обратной связи от клиентов — то есть, примерно то, что в отчете 2020 state of enterprise machine learning [44] посчитали основными применениями машинного обучения в 2020 году.
Square (те, которые мерчант-агрегатор) выпустили новое SDK для Java [45].
Недавняя дискуссия на Reddit [46] подтверждает, что GraalVM пошел в массы — люди еще не научились гуглить, но уже хотят все запускать на Граале.
@FieldOrder(index = 1) и потом смотрит структуру в отладчике.allOf и anyOf в CompletableFuture — что с ними не так и как их можно сделать более удобными.Картинка Для Привлечения Внимания предоставлена фотографом Bryson Hammer и сделана в канадском городе Кокран, на территории Bow Valley High School. Bryson специализируется на фотографиях холодных северных окраин, гор и живущей там живности.
Автор: Олег Чирухин
Источник [64]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/341409
Ссылки в тексте:
[1] здесь: http://jdk.java.net/loom/
[2] здесь: https://mail.openjdk.java.net/pipermail/loom-dev/2019-December/000931.html
[3] Loom Date Server: https://github.com/vishpat/loom-date-server
[4] Fibry: https://github.com/lucav76/Fibry
[5] RxJavaFiberInterop: https://github.com/akarnokd/RxJavaFiberInterop
[6] раз: https://github.com/nazmulidris/loomexample
[7] два: https://github.com/c9katayama/project-loom-examples
[8] есть на Reddit: https://www.reddit.com/user/pron98
[9] опубликовали видео: https://www.youtube.com/watch?v=kJGcDU4esUY
[10] Debezium 1.0.0: https://debezium.io/blog/2019/12/18/debezium-1-0-0-final-released/
[11] собственный сайт: https://debezium.io/
[12] Hibernate Envers: https://vladmihalcea.com/the-best-way-to-implement-an-audit-log-using-hibernate-envers/
[13] для MongoDB: https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb
[14] в статье Vlad Mihalcea: https://vladmihalcea.com/a-beginners-guide-to-cdc-change-data-capture/
[15] QueryDSL EntityQL: https://github.com/eXsio/querydsl-entityql
[16] выпущена версия v1.1.1-beta: https://github.com/vincenzopalazzo/material-ui-swing/releases/tag/v1.1.1-beta
[17] Camel 3: https://github.com/apache/camel
[18] Camel K: https://github.com/apache/camel-k/
[19] Camel Quarkus: https://github.com/apache/camel-quarkus
[20] Flow API: https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html
[21] Kafka 2.4: https://www.apache.org/dist/kafka/2.4.0/RELEASE_NOTES.html
[22] может перебрасывать: https://cwiki.apache.org/confluence/display/KAFKA/KIP-392%3A+Allow+consumers+to+fetch+from+closest+replica
[23] Java Authorizer API: https://cwiki.apache.org/confluence/display/KAFKA/KIP-504+-+Add+new+Java+Authorizer+Interface
[24] Spring for Kafka 2.4 RC1: https://spring.io/blog/2019/12/18/spring-for-apache-kafka-2-4-release-candidate
[25] Объявлены: https://spring.io/blog/2019/12/23/spring-cloud-roadmap-and-hoxton-and-greenwich-maintenance-and-eol-announcements
[26] Hoxton Service Release 1 (SR1): https://spring.io/blog/2019/12/21/spring-cloud-hoxton-service-release-1-sr1-is-available
[27] одни багфиксы: https://github.com/orgs/spring-cloud/projects/34
[28] 18 декабря: https://spring.io/blog/2019/12/18/this-week-in-spring-december-18th-2019
[29] 24 декабря: https://spring.io/blog/2019/12/24/this-week-in-spring-december-24th-2019
[30] опубликовал роадмап: https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020/
[31] Есть перевод на русский язык: https://habr.com/ru/company/JetBrains/blog/481344/
[32] IntelliJ IDEA 2019.3.1: https://blog.jetbrains.com/idea/2019/12/intellij-idea-2019-3-1-is-out/
[33] больше не нужно: https://youtrack.jetbrains.com/issue/IDEA-223706
[34] чудовищный баг: https://youtrack.jetbrains.com/issue/IDEA-224676
[35] Eclipse 2019-12: https://www.youtube.com/watch?v=OdoyCjpaQKs
[36] Eclipse Web Tools Platform: https://www.eclipse.org/webtools/releases/3.16/
[37] вышли Spring Tools 4.5.0: https://spring.io/blog/2019/12/19/spring-tools-4-5-0-released
[38] В новом посте: https://dentrassi.de/2019/12/19/update-on-eclipse-iot-packages/
[39] опубликовал видео: https://www.youtube.com/watch?v=0bhfWtZocF8
[40] обсуждение на Reddit: https://www.reddit.com/r/java/comments/edn45c/refactoring_java_lift_up_conditional/
[41] интервью с Krzysztof Ciesielski: https://blog.softwaremill.com/alpakka-kafka-connector-an-open-source-reactive-enterprise-integration-library-for-java-and-scala-c5f954b66787
[42] зарелизили: https://in.relation.to/2019/12/18/google-cloud-spanner-dialect/
[43] AutoML Natural Language: https://cloud.google.com/blog/products/ai-machine-learning/machine-learning-feature-automl-natural-language-generally-available
[44] 2020 state of enterprise machine learning: https://info.algorithmia.com/hubfs/2019/Whitepapers/The-State-of-Enterprise-ML-2020/Algorithmia_2020_State_of_Enterprise_ML.pdf?hsLang=en-us
[45] новое SDK для Java: https://developer.squareup.com/blog/announcing-squares-new-java-sdk/
[46] дискуссия на Reddit: https://www.reddit.com/r/java/comments/efxtj7/does_jre_need_to_be_installed_to_run_java_native/
[47] ashofthedream: https://habr.com/ru/users/ashofthedream/
[48] ужасы реактивного программирования: https://habr.com/ru/post/481716/
[49] «Исследуем бинарные форматы на примере байткода .class файла»: https://habr.com/ru/post/481260/
[50] esavin: https://habr.com/ru/users/esavin/
[51] Вторая часть: https://habr.com/ru/post/481354/
[52] dp_ua: https://habr.com/ru/users/dp_ua/
[53] ссылка: https://habr.com/ru/post/476306/
[54] Как Kafka стала болью: https://habr.com/ru/company/tinkoff/blog/481784/
[55] Топ 10 ошибок в проектах Java за 2019 год: https://habr.com/ru/company/pvs-studio/blog/481186/
[56] lany: https://habr.com/ru/users/lany/
[57] Отчет про встречу jug.msk.ru: https://habr.com/ru/company/jugru/blog/480412/
[58] AGregory: https://habr.com/ru/users/agregory/
[59] Первая: https://habr.com/ru/post/481254/
[60] вторая: https://habr.com/ru/post/481458/
[61] третья: https://habr.com/ru/post/481500/
[62] перевели на русский: https://habr.com/ru/company/otus/blog/481804/
[63] анонсировали конкурс: https://habr.com/ru/company/funcorp/blog/481814/
[64] Источник: https://habr.com/ru/post/482218/?utm_source=habrahabr&utm_medium=rss&utm_campaign=482218
Нажмите здесь для печати.