Статьи

Создайте пользовательский соединитель с помощью XML SDK и разверните его в Anypoint Exchange

Вступление

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.

Ссылки