Вступление
XML SDK — это альтернативный подход к созданию пользовательских модулей в Mulesoft. Этот подход сравнительно легче построить по сравнению с уже существующим JAVA Mule SDK. Создание пользовательского модуля в Mule SDK аналогично созданию приложения Mule. Этот документ посвящен демонстрации шагов по созданию пользовательского модуля с использованием XML SDK и его развертыванию в Anypoint Exchange. Мы создадим пользовательский соединитель в Mule 4, который будет выполнять основные арифметические операции, такие как сложение и вычитание
Требования
Применение / Услуги |
Версия |
Mule Runtime |
4.0.0 или позже |
Anypoint Studio |
7.0 или позже |
Джава |
1.8.0_x |
Создание приложения XML SDK
Первым шагом в создании пользовательского модуля является создание каркаса для приложения.
Для создания скелета XML SDK необходимо выполнить следующую команду в нужном месте:
mvn archetype:generate -DarchetypeGroupId=org.mule.extensions -DarchetypeArtifactId=mule-extensions-xml-archetype -DarchetypeVersion=1.3.0-SNAPSHOT -DgroupId=com.companyName.mule.modules -DartifactId=mule4-arithmetic-connector -Dpackage=mule-module -Dversion=1.0.0-SNAPSHOT -DextensionName="Arithmetic Connector"
Примечание. Эта команда должна выполняться в одну строку.
-
archetypeGroupId -> groupId в репозитории Mule, где определен скелет для XML SDK
-
archetypeArtifactId -> идентификатор артефакта архетипа в этом хранилище
-
archetypeVersion -> версия mule-extensions-xml-archetype
-
groupId -> идентификатор группы для создаваемого вами модуля
-
artifactId -> идентификатор артефакта для вашего пользовательского модуля
-
Пакет -> пакет, под которым вы хотите создать приложение
-
Версия -> версия вашего пользовательского модуля
-
extensionName -> имя вашего пользовательского модуля
Здесь значения для groupId, artifactId, package, version и extensonName можно настраивать.
Примечание: важно, чтобы archetypeVersion указывал на последнюю версию, чтобы включить все функции.
Вывод после запуска следующей команды в командной строке / терминале:
Как только он успешно собран, в папке создается скелетный проект.
Следующим шагом является импорт этого проекта в Anypoint Studio.
Откройте Anypoint Studio 7 или выше и импортируйте проект.
Нажмите Файл -> Импортировать проект из файловой системы.
На вкладке Каталог укажите путь к корневой папке структуры, созданной на предыдущем шаге.
При успешном импорте проводник пакетов должен выглядеть следующим образом:
Весь функционал находится в файле «module-Arithmetic-Connector.xml».
Наборы тестов для модуля находятся в файле «assertion-munit-test.xml».
Файлы состоят из кода шаблона и тестовых случаев munit.
Разъемы Mule 4 являются модульными, поэтому каждый разъем теперь представляет собой набор различных операций.
Если мы проанализируем файл «module-Arithmetic-Connector.xml», тег операции будет состоять из трех важных тегов: Parameters, Body и Output.
-
Тег <parameter> определяет входные параметры для нашей операции
-
Тег <body> состоит из всей логики этой операции.
-
Тег <output> определяет вывод конкретной операции. Операция может возвращать только одно значение в качестве вывода.
Вот пример кода для нашего арифметического соединителя:
<?xml version="1.0" encoding="UTF-8"?>
<module name="Arithmetic Connector Smart Connector" prefix="module-arithmetic-connector"
doc:description="This module relies in runtime provided components"
xmlns="http://www.mulesoft.org/schema/mule/module" xmlns:mule="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:tns="http://www.mulesoft.org/schema/mule/module-arithmetic-connector"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/module http://www.mulesoft.org/schema/mule/module/current/mule-module.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/module-arithmetic-connector http://www.mulesoft.org/schema/mule/module-arithmetic-connector/current/mule-module-arithmetic-connector.xsd">
<operation name="Addition" doc:description="Add two objects">
<parameters>
<parameter name="number1" displayName="Number 1" use="REQUIRED"
type="number" example="1"></parameter>
<parameter name="number2" displayName="Number 2" use="REQUIRED"
type="string" example="2"></parameter>
</parameters>
<body>
<mule:set-payload value="#[vars.number1 + vars.number2]"></mule:set-payload>
</body>
<output type="string" />
</operation>
<operation name="Subtraction" doc:description="Subtract two objects">
<parameters>
<parameter name="number1" displayName="Number 1" use="REQUIRED"
type="number" example="1"></parameter>
<parameter name="number2" displayName="Number 2" use="REQUIRED"
type="string" example="2"></parameter>
</parameters>
<body>
<mule:set-payload value="#[vars.number1 - vars.number2]"></mule:set-payload>
</body>
<output type="string" />
</operation>
</module>
Вышеуказанный соединитель выполняет две основные арифметические операции: сложение и вычитание.
Написание тестовых примеров Munit является необязательным для этого разъема, поэтому мы пропускаем демонстрацию Munit
Чтобы установить соединитель локально, выполните в терминале следующую команду:
mvn install
Если в проекте нет ошибок, он должен быть успешно собран.
Чтобы использовать этот соединитель в проекте, добавьте следующую зависимость:
<dependency>
<groupId>com.companyName.mule.modules</groupId>
<artifactId>mule4-arithmetic-connector</artifactId>
<version>1.0.0-SNAPSHOT</version>
<classifier>mule-plugin</classifier>
</dependency>
Чтобы развернуть этот соединитель в Exchange, необходимо выполнить несколько дополнительных шагов.
- Обновите идентификатор группы в файле pom.xml до идентификатора организации Anypoint
- Добавьте следующий фрагмент в ваш файл pom.xml:
Примечание. Замените {{orgId}} ) на свой идентификатор организации.
- Добавьте учетные данные вашей платформы Anypoint в maven settings.xml под тегом <Servers>:
<server>
<id>Repository</id>
<username>{{Your Username}}</username>
<password>{{Your Password}}</password>
</server>
- Добавьте профиль репозитория в свой maven settings.xml под тегом <profile>
<profile>
<repositories>
<repository>
<id>Repository</id>
<name>Corporate Repository</name>
<url>https://maven.anypoint.mulesoft.com/api/v1/organizations/{{orgId}}/maven</url>
</repository>
</repositories>
<id>Repository</id>
</profile>
Активируйте этот профиль, добавив его в тег <activeProfiles>
<activeProfile>Repository</activeProfile>
После внесения этих изменений выполните команду «mvn deploy» из терминала.
При успешной сборке вы должны увидеть коннектор в вашем Anypoint Exchange
Чтобы использовать этот соединитель в проекте, добавьте эту зависимость в файл pom.xml.
<dependency>
<groupId>{{orgId}}</groupId>
<artifactId>mule4-arithmetic-connector</artifactId>
<version>1.0.0-SNAPSHOT</version>
<classifier>mule-plugin</classifier>
</dependency>
Итак, мы только что создали наш первый Connector, используя Mule XML SDK, и развернули его на Anypoint Exchange.