Один из проектов, которым я следую в последнее время, это 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 . |