Статьи

Создание корпоративных приложений Mule с Gradle – часть 3

[Эта статья была первоначально написана Хуаном Каваллоти.]

Это третий пост в серии плагинов Gradle , и с плагином многое произошло с момента публикации первой статьи серии. Сегодня я анонсирую новые интересные функции, полезные для удовлетворения потребностей корпоративных пользователей. Для получения дополнительной информации о том, как начать создавать приложения с помощью gradle , пожалуйста, проверьте предыдущее сообщение в блоге и особенно файл readme проекта . Теперь давайте начнем.

Тонкая настройка Mule Dependencies

Этот плагин предназначен для будущего и все еще остается кратким, поэтому мы ввели DSL для настройки зависимостей mule, которые будут включены в состав сборки . Это позволяет пользователям (очень кратко) точно настраивать модули, транспорты и соединители, включенные при модульном тестировании, компиляции кода и запуске приложения.

mule.components {

    //exclude jdbc transport, deprecated in 3.5.0
    transports -= 'jdbc'

    //include DB module.
    modules += 'db'

    //add a cloud connector
    connector name: 'mule-module-cors', version: '1.1'

    //add an external module
    module name: 'mule-module-apikit-plugin', version: '1.3', noClassifier: true
}

Кроме того, этот DSL позволяет включать сгенерированные Devkit модули в виде zip-плагинов, улучшая изоляцию загрузки классов и позволяя вам отделить библиотеки, которые вы определяете как зависимости, от транзитивных зависимостей, включенных в плагины; одновременно уменьшая количество файлов, извлекаемых с удаленного сервера.

Общие ресурсы (также известные как Домены)

В Mule 3.5.0 появилась возможность совместного использования ресурсов, коннекторов и библиотек между мул-проектами. Он также представил новую структуру проекта и процедуру развертывания. Плагин Gradle полностью поддерживает это и даже позволяет создавать проект домена шаблона, чтобы вы могли быстро узнать, как выглядит новая структура.

Чтобы использовать доменные проекты, плагин использует возможность Gradle для создания многомодульных проектов. Таким образом, вся семантика сохраняется при включении таких функций, как один файл build.gradle, а также совместимость с IDE, поддерживающими gradle.

Вам просто нужно определить стандартный build.gradle, который применяет плагин «mule-domain» и стандартный «settings.gradle» для определения модулей проекта.

buildscript {
	dependencies {
		classpath group: 'org.mulesoft.build', name: 'mule-gradle-plugin', version: '1.0.0-SNAPSHOT'
	}

	repositories {
		mavenLocal()
	}
}

apply plugin: 'mule-domain'

mule.version = '3.5.0'
include 'api', 'backend'

У подключаемых модулей домена есть несколько полезностей, в том числе возможность проверить, правильно ли настроены модули для домена, исправить конфигурацию, чтобы убедиться, что она работает, и установить полученный zip-файл на заданный мул-сервер.

Загрузите свои приложения в консоль управления Mule

На момент написания этой статьи эта функция была доступна только тем, кто решил строить с Gradle. Плагин mule gradle предлагает очень простой DSL для определения вашей среды и загрузки артефактов в консоль управления данной среды. Эта функция аналогична той, что предлагается Anypoint Studio, но доступна для ваших автоматических сборок. Ниже приведен пример того, как выглядит этот DSL:

//...standard definition

apply plugin: 'mmc'

//...standard definition

mmc.environments {
    //different environments could be managed by different consoles
    dev url: 'http://managmentConsole:8080/mmc', appName:'myApp', version:'1.0.2'
    //two different environments managed by the same console
    prod url: 'http://prodEnv:8080/mmc', appName:'prodApp', username: 'admin', password: 'test'
    'pre-prod' url: 'http://prodEnv:8080/mmc', appName: 'preProdApp', username: 'admin', password: 'test'

    defaultEnvironment = 'prod'
}

Имея это определение, мы можем просто использовать задачу «uploadToRepository», и приложение будет собрано, протестировано, упаковано и загружено в репозиторий MMC .

Разверните свои приложения в CloudHub !

На момент написания этой статьи эта функция также была доступна только пользователям, создающим свои приложения с Gradle. Этот плагин теперь предлагает возможность развертывания вашего приложения в заданном домене CloudHub и с помощью простого DSL определяет несколько сред, в которых можно развернуть приложение. Ниже приведен пример того, как определить и использовать плагин CloudHub:

//standard plugin definition
apply plugin: 'cloudhub'

//standard plugin configuration

cloudhub.domains {
    myapp  username: 'login-username', password: 'pass'
    'myapp-dev' username: 'dev-username', password: 'pass'

    defaultDomain = 'myapp-dev'
}

С этим определением мы можем просто вызвать задачу ‘deploy’, и приложение будет собрано, протестировано, упаковано и загружено в настроенный домен CloudHub.

Приложения модульного тестирования с DataMapper

Автоматизация модульных тестов с помощью Maven и DataMapper на самом деле не простая задача . Есть несколько конфигураций, которые будут созданы и протестированы. Это просто потому, что среда выполнения DataMapper должна присутствовать (нестандартным образом) при запуске модульных тестов. Помня об этой боли, плагин gradle использует задачи, необходимые для правильной настройки среды тестирования для запуска тестов DataMapper без дополнительной настройки! Единственное, что нужно — это иметь действующую лицензию mule с правами DataMapper в ‘src / test / resources’.