Один из проектов, которым я следую в последнее время, это Wildfly Swarm . В конце концов, моя просьба во время Devoxx этого года в JBoss BOF рассмотреть вопрос об изменении названия проекта не была выполнена (из-за конфликта со знаменитым Docker Swarm ).
Так что же такое Wildfly Swarm?
Проще говоря, это сервер приложений Wildfly (сервер приложений, который выбирают многие разработчики, включая меня), разделенный на несколько частей — (модули или фракции, как они называются), и предоставленный любому разработчику для их использования и сборки нового модульное решение. Вам больше не придется связывать или устанавливать весь сервер приложений, только нужные вам слои и функции. Вы можете выбрать из списка нескольких подмодулей те, которые ваше приложение собирается использовать, извлечь их зависимости и собрать ваше окончательное jar-приложение вместе с вашим кодом. Модель очень похожа на то, что многие команды и разработчики делают с Spring Boot .
Wildfly и модульность — впереди своего времени
Следует отметить, что Wildfly является одним из немногих серверов приложений, которые инвестировали в свою модульность и связанную инфраструктуру задолго до появления других технологий или контейнеров. За последние годы кодовая база JBoss / Wildfly сильно изменилась в сторону создания гибкого ядра со сменными модулями, и это то, что мы должны отдавать должное их команде разработчиков и дизайнеров уже много лет . Если вы работали над каким-либо проектом, использующим Wildfly или JBoss, вы уже знакомы с его архитектурой модулей и упрощенными функциями загрузки классов и библиотек. Таким образом, сервер приложений и компоненты уже были модульными по конструкции и конструкции, единственное, чего не хватает, это сделать его официальным и предоставить некоторые дополнительные инструменты и API для конечного разработчика — чтобы полностью использовать эту возможность. Это Wildfly Swarm. Разработка все еще продолжается. Официальный сайт можно найти здесь , длинный список примеров и код можно найти здесь , официальную документацию можно найти здесь , учетную запись Twitter здесь , и список рассылки можно найти здесь .
ShrinkWrap — отличный API
Одним из преимуществ использования Wildfly Swarm с точки зрения разработки является использование очень удобного превосходного написанного API IMHO, называемого ShrinkWrap . ShrinkWarp появился из проекта Arquillian , и это API, который вы используете для создания на лету своего «тестируемого» архива, который будет развернут на лету на сервере приложений. Как здорово вписывается в контекст Wildfly Swarm, где вы можете программно составить конечное приложение (есть и другие способы). Я всегда наслаждался красотой и простотой ShrinkWrap при разработке теста на основе Arquillian, и я очень рад, что он «ушел» и в другие инструменты и технологии.
Маленький вклад Maven
Пока я просматривал примеры, пытаясь учиться и играть с Wildfly Swarm, я заметил, что с точки зрения Maven не хватает какой-то мелочи. Поскольку существует множество модулей (фракций), которые в конечном итоге вы можете определить как зависимости, для того, чтобы прийти к окончательному решению, мне не хватало некоторой помощи в виде ведомости материалов по фракциям, чтобы вы могли импортировать ее в ваш окончательный POM, а затем выберите любые зависимости, которые вам могут понравиться. Я решил создать проблему и предоставить крошечный запрос на извлечение — с предложенной спецификацией. Удовлетворенная команда разработчиков, которая достаточно быстро продвинулась на этом и последней версии Wildfly Swarm, предлагает новую спецификацию для всех пользователей Maven.
- У меня есть небольшой демонстрационный проект (не что-то необычное, просто чтобы показать некоторые вещи или поиграть с другими в будущем). Вы можете найти это здесь .
Основная идея заключается в том, что в любом новом проекте на основе Wildfly Swarm, созданном с Maven, теперь вы можете импортировать конкретную спецификацию (имя bom) и иметь конкретный список вместе с версией доступных фракций (компонентов).
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
< dependencies > < dependency > < groupId >org.wildfly.swarm</ groupId > < artifactId >weld</ artifactId > </ dependency > < dependency > < groupId >org.wildfly.swarm</ groupId > < artifactId >jaxrs</ artifactId > </ dependency > </ dependencies > < dependencyManagement > < dependencies > < dependency > < groupId >org.wildfly.swarm</ groupId > < artifactId >bom</ artifactId > < version >${wildfly.swarm.version}</ version > < type >pom</ type > < scope >import</ scope > </ dependency > </ dependencies > </ dependencyManagement > |
- Вы можете найти полный простой пом здесь .
Ссылка: | Wildfly Swarm, к зрелости и небольшому вкладу нашего партнера JCG Пэрис Апостолопулос в блоге Papo . |