Статьи

Wildfly Swarm, к зрелости и небольшому вкладу

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