Вышел JUnit 5.6. Добавлены
any()
иnone()
, чтобы запускать тесты без каких-то дополнительных тэгов,ReflectionSupport.findNestedClasses()
может находить циклы в иерархии внутренних классов,TestExecutionSummary.Failure
можно сериализовывать, и все в таком духе. Интересно, что если раньше ошибки логировали и прятали, то теперь в явном виде выбрасывают в ходе сканирования тестов (но можно вернуть старое поведение, установив параметрjunit.platform.discovery.listener.default
).В Maven Central окончательно убрали незашифрованный доступ по http, теперь только https.
В Gradle 6.1.1 кэш зависимостей может копироваться и передаваться эфемерным агентам сборки для того, чтобы переиспользовать заранее загруженные файлы зависимостей. Эфемерный агент — это «запустил и выбросил».
Вышла IntelliJ IDEA 2020.1 EAP: Java 14, улучшения в плагине Git, и… в общем, зачем я это пишу, обновил и забыл.
Кроме того, JetBrains выбрасывают поддержку Microsoft Team Foundation Server (TFS) старых версий (до 2014 года включительно). Это не тот TFS, что современный Azure DevOps Server, а мрачное эхо прошлого. Довольно разврата! :-)
Вышли версии JMetro 11.6.5 и 8.6.5. JMetro это такая библиотека стилей для JavaFx. Добавили три новых стиля для контролов (табы с нижней линией, слайдер с выбором диапазона, более красивые ячейки в контролах, которые используют ячейки), ну и фиксы на уже существующие стили.
Вышла первая версия jlWebScraper — веб-скрейпера с простым API, кодингом на LUA и всей мощью Java. По сути, это очень простая полезняшка, использущая внутри jLuaScript.
Кстати, о jLuaScript! Это штука от того же автора, что и jlWebScraper, недавно вышла версия 1.2. Автор добросил немного документации и починил стектрейсы. В общем, никто не предлагает этим действительно пользоваться, но на всякий случай знать о наличии этой штуки полезно, потому что лицензия LGPL3, и в крайнем случае этим кодом можно вдохновляться.
iText объявил о выходе нового продукта под названием pdfRenderer, который может конвертировать PDF-ки в картинки. К сожалению, распространяется эта библиотека как аддон к iText с закрытыми исходниками. В опенсорсе у них только сам iText, pdfHTML, pdfSweep и RUPS. Кстати, самому iText в этом феврале исполнится двадцать лет!
Вышла вторая бета Jaybird — JDBC-драйвера для Firebird 4, который поддерживает новые типы данных и фичи из Firebird 4.
Java Language & Platform
Обновили JEP 371: Hidden Classes. Такая функциональность была давно, но она лежала в
Unsafe
, а этот JEP дает некое легальное API.Люди уже распробовали Panama и теперь пытаются делать с ней какие-то вещи. Буквально пару дней назад появился репозиторий Crosspoint с 35 коммитами, в котором автор пытается сделать простую высокоуровневую абстракцию для работы с Memory Access API. Кроме того, автор хочет попробовать впилить туда NVIDIA Management Library (NVML).
JetBrains прекращает поддержку JetBrains Runtime 8 и переходит на JBR11.
A Pure Reference Counting Garbage Collection in Java. Автор попытался на основе пейпера Бэкона написать немного джавного кода, результаты можно посмотреть у него в репозитории в тестах. Надо отметить, что по тому же пейперу сделан GC в Kotlin/Native.
Компании и сервисы
В только что вышедшем GitLab 12.7 добавили parent-child pipelines. Для всех пользователей (даже бесплатных) добавили бета-версию Windows Shared Runners — это такие виртуальные машины Windows, которые хостятся самим GitLab и позволяют делать продвинутые фичи вроде автоматического масштабирования, а внутри каждой виртуалки — куча всякого необходимого для сборки виндового софта.
Бывший ведущий разработчик Project Reactor перешёл в Netflix. Похоже, Reactor захватывает мир.
Создатель Jenkins Kohsuke Kawaguchi ушел из CloudBees и начал новый стартап — Launchable. Это некий сервис на основе машинного обучения, занимающийся test prediction, чтобы не гонять все тесты, если изменение их вообще не касается.
Confluent теперь предоставляют Kafka как сервис Google Cloud Platform прямо в их Marketplace. Напомним, что Google еще весной прошлого года обещал какое-то сотрудничество с какими-то опенсорсными клиентами, включая MongoDB, DataStax, and Confluent — теперь мы можем видеть результаты этого сотрудничества. Тем не менее, оплачивать Kafka нужно будет отдельно от остальных сервисов GCP.
Elastic зарелизили Elastic Cloud on Kubernetes. Это оператор для Kubernetes, расширяющий его возможности по установке и управлению Elasticsearch и Kibana.
Eclipse
Вышел Eclipse Vert.x 3.8.5. Релиз целиком про багфиксы, но нужно обратить внимание на пачку deprecated-методов.
Интересная статья в блоге Eclipse про организацию команд: «Organizing Your Eclipse Foundation Open Source Project Team». Eclipse Development Process — это штука довольно обобщенная, и он ничего не говорит, например, о том, как вам обустроить ежедневную рутину разработки. Но при этом у руководителей Eclipse есть верхнеуровневое понимание, как должны быть организованы команды и куда они должны двигаться, и вот об этом статья.
Spring
Вышел «Spring Integration 5.3 Milestone 1» — основа для будущего Spring Boot 2.3. Короткий список, чего нового произошло, — здесь.
Вышел Spring Boot 2.3.0.M1. Там есть layered jars для включения в докерный контейнер, есть End-to-end traceability for Configuration Properties. Появилась поддержка Cloud Native Buildpacks. Стоит прочитать Release Notes для этой версии Spring.
Cloud Native Buildpacks позволяет не писать докерфайл самостоятельно — зависимости попадут в него автоматически. Про это есть статья на Хабре и на Medium.
Кроме того, Phil Webb написал статью, резюмирующую, как в новых версиях Spring нужно работать с Docker.
Вышел стабильный багфикс-релиз «Sprin Cloud Data Flow 2.3.1», и следом за ним — майлстоун «Spring Cloud Data Flow 2.4.0 M1» (появился свой собственный верхнеуровневый pom, немного доделали редактор, сделали Maven Preemptive Authentication для того, чтобы работал Artifactory).
Подкасты, видео
Josh Long записал Bootiful Podacst с Michael Hunger, сумасшедшим ученым Neo4j, про графы, базы данных и связи.
Очередное видео TechShool — про реализацию серверного API на gRPC. Это уже одиннадцатый выпуск в серии про gRPC.
Статьи
«High performance at low cost – choose the best JVM and the best Garbage Collector for your needs» — разбор GC с графиками, Shenandoah/Z/G1 присутствуют.
«Parallel Collection Processing: Without Parallel Streams» констатирует, что параллельные стримы — отстой, и предлагает что-то сделать на эту тему.
«Isolates and Compressed References: More Flexible and Efficient Memory Management via GraalVM»