ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

Spring АйО

Spring АйО

前往频道在 Telegram

Русскоязычное сообщество Spring-разработчиков. Habr: bit.ly/433IK46 YouTube: bit.ly/4h3Ci0x VK: bit.ly/4hF0OG8 Rutube: bit.ly/4b4UeX6 Яндекс Музыка: bit.ly/3EIizWy Чат для общения: @spring_aio_chat По вопросам сотрудничества: @befayer

显示更多

📈 Telegram 频道 Spring АйО 的分析概览

频道 Spring АйО (@spring_aio) 是活跃参与者。目前社区聚集了 10 943 名订阅者,在 技术与应用 类别中位列第 11 249,并在 俄罗斯 地区排名第 58 243 位。

📊 受众指标与增长动态

自 невідомо 创建以来,项目保持高速增长,吸引了 10 943 名订阅者。

根据 30 十月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 56,过去 24 小时变化为 -6,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 52.86%。内容发布后 24 小时内通常能获得 22.38% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 5 785 次浏览,首日通常累积 2 449 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 43。
  • 主题关注点: 内容集中在 айо, хабр, api, jep, amplicode 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
“Русскоязычное сообщество Spring-разработчиков. Habr: bit.ly/433IK46 YouTube: bit.ly/4h3Ci0x VK: bit.ly/4hF0OG8 Rutube: bit.ly/4b4UeX6 Яндекс Музыка: bit.ly/3EIizWy Чат для общения: @spring_aio_chat По вопросам сотрудничества: @befayer”

凭借高频更新(最新数据采集于 31 十月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

10 943
订阅者
-624 小时
-227 天
+5630 天
吸引订阅者
10月 '26
十月 '26
+143
在1个频道中
九月 '26
+88
在0个频道中
Get PRO
八月 '26
+99
在2个频道中
Get PRO
七月 '26
+80
在1个频道中
Get PRO
六月 '26
+152
在1个频道中
Get PRO
五月 '26
+264
在3个频道中
Get PRO
四月 '26
+325
在3个频道中
Get PRO
三月 '26
+339
在5个频道中
Get PRO
二月 '26
+336
在2个频道中
Get PRO
一月 '26
+334
在2个频道中
Get PRO
十二月 '25
+270
在3个频道中
Get PRO
十一月 '25
+382
在3个频道中
Get PRO
十月 '25
+403
在2个频道中
Get PRO
九月 '25
+311
在3个频道中
Get PRO
八月 '25
+441
在6个频道中
Get PRO
七月 '25
+501
在2个频道中
Get PRO
六月 '25
+273
在3个频道中
Get PRO
五月 '25
+474
在4个频道中
Get PRO
四月 '25
+526
在3个频道中
Get PRO
三月 '25
+597
在7个频道中
Get PRO
二月 '25
+623
在4个频道中
Get PRO
一月 '25
+396
在2个频道中
Get PRO
十二月 '24
+473
在4个频道中
Get PRO
十一月 '24
+577
在1个频道中
Get PRO
十月 '24
+816
在5个频道中
Get PRO
九月 '24
+682
在3个频道中
Get PRO
八月 '24
+693
在4个频道中
Get PRO
七月 '24
+842
在2个频道中
Get PRO
六月 '24
+1 255
在5个频道中
日期
订阅者增长
提及
频道
31 十月+1
30 十月0
29 十月+2
28 十月0
27 十月+1
26 十月+2
25 十月+2
24 十月+1
23 十月+5
22 十月+1
21 十月+7
20 十月+6
19 十月+2
18 十月+1
17 十月+3
16 十月+8
15 十月+5
14 十月+18
13 十月+6
12 十月+7
11 十月+8
10 十月+4
09 十月+5
08 十月+4
07 十月+6
06 十月+5
05 十月+10
04 十月+4
03 十月+5
02 十月+8
01 十月+6
频道帖子
Когда генератор нагрузки замирает вместе с сервером Если генератор и тестируемая система работают в одной JVM, пауза GC остан
Когда генератор нагрузки замирает вместе с сервером Если генератор и тестируемая система работают в одной JVM, пауза GC останавливает обоих. Сервер не отвечает, но и новые запросы никто не планирует. В итоге p99 выглядит лучше, чем его увидели бы реальные клиенты. Они-то сборку мусора не ждут. В экспериментах SPECjbb2015 разница между режимами достигала 34 против 100 мс, а с Serial GC даже 278 против 1750 мс. В статье разбираем coordinated omission и объясняем, почему для честного измерения задержек генератор нагрузки стоит вынести в отдельную JVM. 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1101598/

2
🪨 Прод начинается там, где заканчивается магия Наши эксперты Михаил Поливаха и Евгений Сулейманов выступили с двумя практиче
🪨 Прод начинается там, где заканчивается магия Наши эксперты Михаил Поливаха и Евгений Сулейманов выступили с двумя практическими разборами для JVM Dev. • Евгений показал, как Redis сначала спасает latency, а потом незаметно начинает влиять на консистентность, права доступа, релизы и отказоустойчивость. Внутри Spring Boot, PostgreSQL, код, метрики и проблемы, которые обычно приходят уже после фразы «давайте просто добавим кэш». 🤩 СМОТРЕТЬ НА YOUTUBE • Михаил разобрал Spring Data JDBC на примере open-source проекта Axelix. Как проектировать агрегаты, не портить доменную модель и при этом не проигрывать в производительности. 🤩 СМОТРЕТЬ НА YOUTUBE Приятного просмотра!
2 815
3
😶 Java упала до первого лога. Виноват AOT-кэш Docker-образ собрали на процессоре с AVX или SVE. JDK 25 сохранила CPU-специфи
😶 Java упала до первого лога. Виноват AOT-кэш Docker-образ собрали на процессоре с AVX или SVE. JDK 25 сохранила CPU-специфичные адаптеры в AOT-кэш, а затем попыталась выполнить их на машине без этих инструкций. Результат получился на удивление нативным для Java-приложения — SIGILL. В статье разбираем путь от ~AdapterBlob в крэш-логе до бага в OpenJDK. А ещё показываем, как собрать переносимый multi-arch образ, сохранить ускорение старта и не играть в лотерею с процессорами CI-раннеров. 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1100616/
3 268
4
🍃 Spring обошёл авторизацию, Java ускоряется, интерфейсы не нужны? | Spring АйО Подкаст №77 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕ
🍃 Spring обошёл авторизацию, Java ускоряется, интерфейсы не нужны? | Spring АйО Подкаст №77 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ НА VK ВИДЕО 🥰 СМОТРЕТЬ НА RUTUBE 🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ 🤩 СЛУШАТЬ НА SPOTIFY 🤩 СЛУШАТЬ НА APPLE PODCASTS 💬 Аудио версию подкаста можно найти в комментариях
3 829
5
🧑‍💻 Мы вынесли Actuator на отдельный порт и потеряли авторизацию Конфигурация самая обычная: бизнес-API на 8080, Actuator н
🧑‍💻 Мы вынесли Actuator на отдельный порт и потеряли авторизацию Конфигурация самая обычная: бизнес-API на 8080, Actuator на 8081. Так делают очень многие, и это хорошая практика. Но у наших друзей из Axelix при такой настройке Actuator endpoints принимали запросы без JWT-токена. Фильтр при этом был, проверка подписи работала безупречно, просто запрос тайно проходил IAM. Виноват механизм, который живёт в Spring уже лет двадцать и про который в эпоху Spring Boot многие забыли: иерархия ApplicationContext. В статье разбираем: - кто кого видит в иерархии контекстов и почему parent не знает о своих детях; - почему «видеть бин» не значит «использовать его»; - что на самом деле меняет management.server.port; - как Axelix закрыл уязвимость. ⚠️ Полезно всем, кто выносит Actuator на отдельный порт или пишет свои стартеры 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1099408/
4 283
6
🐸 JDK 28 перестает дегать MALLOC по каждой мелочи Arena.ofConfined() получит пулы для небольших сегментов. Вместо постоянных
🐸 JDK 28 перестает дегать MALLOC по каждой мелочи Arena.ofConfined() получит пулы для небольших сегментов. Вместо постоянных вызовов malloc и free JDK сможет повторно использовать блоки памяти. В микробенчмарках выделение 5–20 байт ускорилось в 6,8–18,9 раза. Код менять не придётся, а прежние гарантии безопасности сохранятся. В новом переводе разбираемся, как устроена оптимизация и кому она принесёт пользу. 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1098450/
5 017
7
😈 Преждевременная оптимизация не всегда зло Все знают фразу Дональда Кнута: «Преждевременная оптимизация — корень всех зол».
😈 Преждевременная оптимизация не всегда зло Все знают фразу Дональда Кнута: «Преждевременная оптимизация — корень всех зол». Но обычно цитату обрывают слишком рано. Кнут предлагал забыть о небольшом выигрыше в 97% случаев, но не упускать возможности в оставшихся критически важных 3%. Иногда для них не нужны профилировщик и чёрная магия. Достаточно не компилировать регулярку при каждом вызове, не искать постоянно по List, когда нужен Set, и не создавать новые строки ради сравнения без учёта регистра. В статье разобрали простые приёмы для строк, коллекций, enum и инициализации объектов. Код становится не только быстрее, но и понятнее. Редкое и приятное совпадение. 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1097566/
5 070
8
🍃 AI захватил конференции, почему Kotlin переобулся, статика — зло | Spring АйО Подкаст №76 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕ
🍃 AI захватил конференции, почему Kotlin переобулся, статика — зло | Spring АйО Подкаст №76 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ НА VK ВИДЕО 🥰 Чуть позже... 🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ 🤩 СЛУШАТЬ НА SPOTIFY 🤩 СЛУШАТЬ НА APPLE PODCASTS 💬 Аудио версию подкаста можно найти в комментариях
5 035
9
⚡️ Meta Harness OpenIDE: комментарии, новые агенты и много исправлений Поправили зависания, работу больших чатов и много мело
⚡️ Meta Harness OpenIDE: комментарии, новые агенты и много исправлений Поправили зависания, работу больших чатов и много мелочей в интерфейсе, а в каталог агентов добавили «Астра ИИ Код», SourceCraft от Яндекса, Koda CLI и ещё больше десятка агентов. Главная новинка – комментарии для AI: можно выделить фрагмент кода или ответа агента, написать, что нужно изменить, и собрать замечания в одну пачку либо сразу отправить правку в выбранный или новый чат. В коротком видео показываем, как это работает прямо в IDE. Скачивайте свежий релиз OpenIDE Pro и два месяца пользуйтесь всеми её возможностями бесплатно и без ограничений. https://openide.ru/download
4 500
10
🔄 Переход Java 21 → 25. Где искать грабли Просто поменять версию в pom.xml может быть недостаточно. На JDK 25 могут перестат
🔄 Переход Java 21 → 25. Где искать грабли Просто поменять версию в pom.xml может быть недостаточно. На JDK 25 могут перестать запускаться процессоры аннотаций, сломаться старые параметры JVM и измениться разбор дат. Иногда приложение упадёт сразу. Иногда проблема всплывёт позже, что даже веселее. В новом переводе собрали реальные несовместимости и проверки, которые стоит выполнить до переезда. 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1096850/
4 531
11
Netflix ускорила ИИ-агентов с помощью IntelliJ IDEA Netflix подключила Claude Code и Codex к движку анализа кода JetBrains и
Netflix ускорила ИИ-агентов с помощью IntelliJ IDEA Netflix подключила Claude Code и Codex к движку анализа кода JetBrains и теперь агенты могут работать с индексом проекта и зависимостей вместо раскопок в JAR-файлах через декомпиляцию и grep. На реальных Java и Kotlin проектах расход времени и токенов снизился в среднем на 20–30%, а лучший результат достиг 65%. Вывод простой. Даже умной модели полезно сначала нормально показать код. 🔗 Статья на Хабр 🔗 Исследование JetBrains и Netflix
4 954
12
😀 Joker 2026 && Spring АйО 🍃 Два дня в Петербурге пролетели быстрее, чем прогрев JVM. Доклады, дискуссии, Java, Spring, ИИ-+6
😀 Joker 2026 && Spring АйО 🍃 Два дня в Петербурге пролетели быстрее, чем прогрев JVM. Доклады, дискуссии, Java, Spring, ИИ-агенты и, главное, много живого общения. Спасибо всем, кто подошёл познакомиться, поговорить и обсудить происходящее в нашем уютном энтерпрайзе. Были рады увидеть старых знакомых и встретить новых. Joker 2026 завершился, а впечатления остались. До новых встреч на конференциях! ❤️️️️️️️ И как всегда, спасибо Jug Ru Group за организацию. Все как всегда на высшем уровне!
7 522
13
🎬 Записи докладов с JPoint 2026 уже в открытом доступе JUG Ru Group выложили записи с прошедшего JPoint 2026. Мы собрали в одном посте доклады Spring-трека, который курировала команда Spring АйО. 🔐 Илья Николаев — Передаём секреты в Spring Boot-бины безопасно СМОТРЕТЬ НА YOUTUBE 🛡 Михаил Поливаха — Axelix. Delta Force для экосистемы Spring Boot СМОТРЕТЬ НА YOUTUBE 🧩 Никита Кириллов — Beyond @SpringBootApplication: создание собственных экосистем поверх Spring Boot СМОТРЕТЬ НА YOUTUBE 📈 Рустам Курамшин — Мониторь это. Как писать свои метрики для Micrometer и Grafana СМОТРЕТЬ НА YOUTUBE 🗄 Артемий Дегтярев — Spring Data JDBC: где мы находимся сейчас СМОТРЕТЬ НА YOUTUBE 👀 Пять докладов - от безопасной работы с секретами до собственных экосистем поверх Spring Boot. Хватит на пару вечеров. 💬 Какой доклад зашёл больше всего? Пишите в комментариях
6 851
14
👩‍💻 Kotlin получил почти настоящие статики Начиная с Kotlin 2.5.0-Beta1 можно экспериментировать с блоками-компаньонами. data class Vector(val x: Double, val y: Double) { companion { val ZERO = Vector(0.0, 0.0) } } Выглядит как companion object, только без object. На JVM содержимое такого блока компилируется в статические члены. Никакого отдельного объекта и меньше церемоний при работе с Java. Ещё интереснее companion extensions. Они позволяют добавить член любому Kotlin- или Java-классу, даже если у него нет собственного компаньона. companion fun Vector.unit(angle: Double) = Vector(cos(angle), sin(angle)) Вызывать можно привычно через Vector.unit(...). Существующие companion object никуда не исчезают. Они по-прежнему нужны, если компаньон должен реализовать интерфейс или обладать собственной идентичностью. Для экспериментов нужен флаг -Xcompanion-blocks-and-extensions. Только учитывайте, что расширения-компаньоны пока создают pre-release-бинарники. Тащить их в публичную библиотеку рановато. 🙅‍♂️ 🔗 Наш перевод на Хабр 🔗 Анонс JetBrains 🔗 KEEP
6 329
15
🍃 Spring Boot ломает совместимость, G1 тормозит микросервисы, Java долго релизит фичи | Spring АйО Подкаст №75 😉 СМОТРЕТЬ Н
🍃 Spring Boot ломает совместимость, G1 тормозит микросервисы, Java долго релизит фичи | Spring АйО Подкаст №75 😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ НА VK ВИДЕО 🥰 СМОТРЕТЬ НА RUTUBE 🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ 🤩 СЛУШАТЬ НА SPOTIFY 🤩 СЛУШАТЬ НА APPLE PODCASTS 💬 Аудио версию подкаста можно найти в комментариях
5 559
16
👩‍💻 Spring Config Import без магии У наших друзей из Axelix вышла статья о том, как Spring Boot грузит внешнюю для себя кон
👩‍💻 Spring Config Import без магии У наших друзей из Axelix вышла статья о том, как Spring Boot грузит внешнюю для себя конфигурацию, например из Spring Cloud Config сервера или из Hashicorp Vault. Статья про EnvironmentPostProcessor побудила довольно большое обсуждение вокруг темы того: - Как Spring грузит конфигурацию в целом? - При чём тут bootstrap.yaml и BootstrapContext? - Что кардинально поменялось? - И в чём же такая особенность spring.config.import и почему она требует особого внимания? ⚠️ Полезно всем, кто хоть раз пытался понять, откуда Spring взял конкретное значение 🔗 Статья на Хабр: https://habr.com/ru/companies/spring_aio/articles/1091064/
6 266
17
🥲 В Java 27 TLS научился переживать квантовую атаку При установке HTTPS-соединения клиент и сервер создают общий секрет. Затем с его помощью шифруется передаваемый трафик. Современные алгоритмы обмена ключами считаются надёжными для обычных компьютеров. Но достаточно мощный квантовый компьютер сможет их взломать. Есть атака, которая называется harvest now, decrypt later. Трафик перехватывают сегодня, а расшифровывают через несколько лет. Так вот JEP 527 добавил в Java 27 гибридный обмен ключами для TLS 1.3. Основная схема называется X25519MLKEM768. Она объединяет классический X25519 и постквантовый ML-KEM-768. Секрет зависит от обоих алгоритмов. Даже если один из них когда-нибудь взломают, второй продолжит защищать соединение. Клиент на JDK 27 по умолчанию предлагает серверу две схемы. Новую гибридную и обычную X25519. Если сервер поддерживает гибридную, используется она. Если нет, TLS продолжает работать по старой схеме. Для нас, как для Spring-разработчиков приятно то, что при использовании стандартного javax.net.ssl защита включается по умолчанию. На код никак не влияет, если приложение не переопределяет список TLS-групп. 👀 Получается редкий апгрейд безопасности, который можно получить простым обновлением JDK. Правда, защищает он не от квантового компьютера сегодня, а от слишком хитрого запасливого злоумышленника. 🔗 Подробнее о JEP 527
6 326
18
⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «Замысел» 15 октября. Во второй день+4
⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «Замысел» 15 октября. Во второй день Joker, посвященный разработке будущего. О том, как человек понимает, почему он называет что-то проблемой, и формулирует свою цель, а не ту, что навязана ему извне. Теперь это общая работа для всех ролей, от разработчика до CEO: шаблонными решениями и готовыми схемами думает модель. В карточках к посту рассказываем, почему так получилось, и показываем доклады из трека: спикеры расскажут, о чем нужно подумать еще до постановки задачи, и чем будет заниматься новый тип инженера — Context Engineer. К дискуссиям после докладов — собираем ваши кейсы. Напишите в комментариях поста, если у вас бывало такое: — агент час работал не над той задачей, потому что задача была сформулирована плохо; — ускорение одного этапа не сдвинуло общий срок; — узким местом оказалась не модель или инфраструктура, а знание, которое никто не записал. Joker 2026 — 14–15 октября, Санкт-Петербург и онлайн. 🌟По промокоду springaio персональные билеты дешевле ▶️ Исследуйте разработку будущего — на сайте Joker.
5 607
19
🙅‍♂️ Не каждый AI-вызов должен генерировать текст Иногда от модели нужен не красивый ответ, а быстрое решение. Пропустить за
🙅‍♂️ Не каждый AI-вызов должен генерировать текст Иногда от модели нужен не красивый ответ, а быстрое решение. Пропустить запрос или заблокировать, выбрать маршрут, оценить результат, отфильтровать документы для RAG. Для этого появился Spring AI TypeSafe. Проект интегрирует Jev API, который отвечает на типизированные вопросы числовыми значениями и не генерирует текст. Разбираемся, как поставить быструю и дешёвую проверку перед дорогим вызовом чат-модели и платить по-крупному только тогда, когда это действительно нужно. 🔗 Читать статью
4 599
20
JEP 544: JVM будет сохранять машинный код между запусками JEP 544 (Ahead-of-Time Code Compilation) предложен в JDK 28, релиз
JEP 544: JVM будет сохранять машинный код между запусками JEP 544 (Ahead-of-Time Code Compilation) предложен в JDK 28, релиз в марте 2027. Это очередной слой AOT-кэша из Project Leyden. В JDK 24 туда попали загруженные и слинкованные классы (JEP 483), в JDK 25 - профили методов (JEP 515). Теперь дошла очередь до самого машинного кода. Как это работает На обучающем запуске JVM компилирует горячие методы обычными C1 и C2 и складывает результат в кэш. В рабочем запуске запрос на компиляцию метода закрывается готовым кодом. Процедура та же, что и раньше: -XX:AOTCacheOutput при обучении, -XX:AOTCache в проде. Включать ничего не нужно. Код из кэша остаётся обычным кодом HotSpot. Если рабочая нагрузка ушла в сторону от обучающей, метод деоптимизируется и перекомпилируется JIT-ом, как любой другой. Профили из JEP 515 при этом продолжают работать: по ним JVM выбирает порядок загрузки кода и пересобирает методы. Чем AOT-код хуже JIT-кода JIT компилирует метод, когда нужные классы давно инициализированы. Он подставляет значения static final полей как константы и выбрасывает проверки инициализации. Код из кэша начинает работать раньше, чем классы успели инициализироваться, а значение static final может отличаться от запуска к запуску. Поле приходится читать по-настоящему. Для методов, которые обращаются к статике других классов, C2 собирает две версии: медленную с проверками инициализации и быструю без них. Поэтому JIT никуда не уходит. AOT-код даёт быстрый старт, до пика доводит перекомпиляция. Когда кэш не сработает Обучающий и рабочий запуски должны совпадать по архитектуре процессора, набору инструкций и сборщику мусора: барьеры GC вшиты в машинный код. Собрали образ на хотсе с AVX-512, pod уехал на узел без него - код из кэша не загрузится. Ошибки не будет, JVM молча перейдёт на интерпретатор и JIT. В кластере с разнородными узлами это легко пропустить. Поддерживаются x64 и AArch64, из сборщиков - Serial, Parallel, G1 и ZGC. Цифры По данным JEP, AOT-кэш без кода сокращает время старта на 50-70%, с кодом - на 65-80%. Основную часть выигрыша на старте дают уже вышедшие JDK 24-26, новый JEP добавляет 10-15 п.п. Заметнее эффект на прогреве. В PR есть замер на Quarkus-сервисе с двумя ядрами: обычная JVM начинает отвечать быстрее 1 мс после 420 запросов, JDK 26 с AOT-кэшем - примерно после 200, сборка с JEP 544 - чуть позже сотого. Второй эффект касается CPU. JIT на старте перестаёт отбирать ядра у приложения, и сильнее всего это видно на контейнерах с лимитом в 1-2 CPU. Там, где запас по CPU закладывали под прогрев, его можно будет пересмотреть. Оценить вклад кода на своём сервисе можно диагностическим флагом: -XX:+UnlockDiagnosticVMOptions -XX:-AOTCodeCaching Заодно станет видно, насколько вырос файл кэша. Что остаётся неудобным Обучающий запуск. Кэш хорош настолько, насколько нагрузка при сборке похожа на боевую, а готового инструмента для этого нет. Spring Boot и Quarkus умеют записывать кэш при сборке, но прогон реальных сценариев остаётся на вашей стороне. Упрощение этого процесса авторы JEP прямо вынесли за рамки. JEP: https://openjdk.org/jeps/544
5 547