- Есть такая штука, Milkman — это альтернатива Postman, расширяемый воркбенч для работы с запросами и ответами с интерфейсом на JavaFx и с идеей «всё есть плагин». Несмотря на плагинную архитектуру, эта штука почти не использует reflection, и поэтому стало возможно пересобрать её как бинарник GraalVM Native Image. Плагины, конечно, нельзя добавлять в рантайме — что собрал, то и будет. Сборка делается через Maven. Обсуждение в документации — по ссылке. Не обошлось и без ложки дегтя: так же как пользователи GNU/Linux называют операционную систему просто (и неправильно) «Linux», здесь автор Milkman написал просто «Graal» вместо «GraalVM» — пришлось пойти и создать тикет на исправление этой несправедливости.
- В прошлом декабре появился новый язык для JVM под названием Concurnas. На нем можно писать что угодно, но заточен он для легкого и приятного создания многопоточных, распределенных и параллельных систем. Сейчас вышла версия 1.14.020: в ней поправлены баги с escape-символами в REPL, там же добавлены номера строк, добавлены инструменты по работе со строками вроде взятия буквы по индексу (их не было?!), методы и функции теперь можно красиво печатать с помощью toString, добавлена совместимость с JDK 11 (теперь поддерживаются JDK 8-13).
- Вышла JavaFX 14. К сожалению, с маркетингом у них там не очень, и кроме этого списка закрытых тикетов пока увидеть ничего нельзя. Вкратце, они запилили HTTP/2 в WebView, добавили регулировку размера табов в Text и TextFlow, оптимизировали диспетчеризацию событий когда нет ни одной подписки, добавили возможность прятать курсор для embedded, исправили гору багов.
- Вышла Jersey 2.30.1 (это такой REST-фреймворк, предоставляющий референсную реализацию JAX-RS (JSR-370, JSR 3-11, JSR-339) и все на эту тему). Про изменения в API лучше почитать по ссылке, а мимо проходящим троллям может оказаться интересно поржать над тем, как они чинили в свежей версии Apache HttpClient Connector, чтобы в клиентском коде не нужно было делать таймаут в секунду.
- Клиент-серверный фреймворк SimpleNet превратился в SimpleNet v2, получив поддержку Project Loom. Обещает эффективный и масштабируемый блокирующий I/O. 162 коммита, 140 звездочек, 14 форков.
- На Reddit разработчик material-ui-swing слёзно просит сообщество потестить библиотеку на разных непонятных и редких платформах вроде Microsoft Windows. Демка, которую нужно протестировать, если вы возьметесь за эту миссию, лежит либо на гитхабе в виде исходника, либо в виде полностью собранной джарки.
- В рассылочке подняли тему о том, что, улучшая в
java.util.concurrent
поддержку различных стилей программирования, может понадобиться сделать что-то на стыке BlockingQueue и AutoCloseable, что будет хорошо работать с Project Loom, но не будет прибито гвоздями к Loom. Набросок такого API есть в письме по ссылке, но читателям на Хабре будет проще открыть вот этот файл. Автор предполагает опубликовать реализацию LinkedCarrier сразу же, как буря в почте уляжется. - Обновился совсем свежий JEP 374: Disable and Deprecate Biased Locking. В феврале цель этого JEP-а поменялась с того, чтобы просто убрать косты на поддержку biased locking на то, чтобы понять, насколько нужна поддержка легаси оптимизации синхронизации. Сейчас Марк Рейнхольд скинул эту задачку с себя на Patricio Chilano Mateo. А он, в свою очередь, расширил список рассматриваемых продуктовых опций до
BiasedLockingStartupDelay
,BiasedLockingBulkRebiasThreshold
,BiasedLockingBulkRevokeThreshold
,BiasedLockingDecayTime
,UseOptoBiasInlining
, и диагностических опций доPrintBiasedLockingStatistics
иPrintPreciseBiasedLockingStatistics
. (Если вы задаетесь вопросами, откуда я это знаю: надо читать комментарии в JBS и диффать состояния текста вручную). - Обновился еще один свежий JEP 375: Pattern Matching for instanceof (Second Preview). Рейнхольд добавил туда заметку, что фича появилась в JEP 305 в середине 2017, и была предназначена для JDK 14 в середине 2019 в виде preview feature. JEP 375 предлагает переделать эту фичу в JDK 15: добавить паттерн-матчинг по рекордам и учесть обратную связь от сообщества.
- Netflix выкатили новый опенсорсный инструмент, crisis management orchestration framework, называющийся Dispatch. Эта штука управляет метаинформацией и ресурсами, связанной с инцидентом, и протаскивает вас основным шагам реакции на инцидент. Важно, что Dispatch не прибит гвоздями к AWS (слишком часто это случается, чтобы неприбитость к AWS стала фичей!). С другой стороны, Dispatch не заставляет учить кучу новых инструментов, а интегрируется с API уже знакомых штук вроде Jira, PagerDuty и VictorOps. Есть на GitHub, написано на Python, фронт на Javascript + Vue.js (нам как Java-разработчикам трогать их не обязательно).
- Вышли Spring Session for Apache Geode & Pivotal GemFire: 1.1.6.RELEASE, 1.2.5.RELEASE, 2.1.9.RELEASE, 2.2.3.RELEASE, 2.3.0.RC1
Статьи
- Mala Gupta в блоге JetBrains сделала иллюстрированный обзор работы с профайлерами. IDEA может работать с Async Profiler Андрея Паньгина и JFR в свежих версиях JDK. Можно посмотреть глазами красивые флеймграфы, вызовы в разрезе дерева или списка методов и делать по ним поиск.
- Lucas Eder в блоге jOOQ рассказывает о том, что делать, если куски запроса должны добавляться в зависимости от разных условий, а реализация этих веток по-умолчанию должна ничего не делать. На эту тему есть куча разных мелких опций, делающих похожие вещи, в которых легко потеряться. Например, можно сделать
SelectConditionStep
и приклеивать последний кусок с помощью if-а, но лучше вынести условия where в отдельную переменную, и дальше использовать более функциональный подход. - Статья «Map merge and compute, hidden API diamonds» про change-if-present. Честно говоря, непонятно, чего там скрытого в этом API, но хорошо, что автор поднял эту тему :-)
- Michal Fabjanski написал смузи-статью про то, что нужно знать о concurrency на собеседовании.
- На r/java пришел несчастный молодой человек и рассказал, как он ненавидит Spring. «Три дня я гналась за Вами, что бы сказать, как Вы мне безразличны». У вас еще есть шанс немного его потролить.
Дайджест публикуется при поддержке JUG Ru Group и конференции JPoint.
Wilno
Круто, прям очень круто!
Я, правда, уже это говорил, но не удержался сказать ещё раз.
olegchir Автор
На этот раз новостей чуть поменьше, потому что дней прошло совсем мало.
Но заставить себя написать дайджест так гораздо проще :-) Неделя — реально, две недели — сложно, месяц может написать только Итан Хант и стоить это будет сто миллионов долларов