вторник, 23 сентября 2014 г.

Подключаемся из ESB к Jira



Установить Jira на локальной машине


Описание доступно по ссылке:

https://developer.atlassian.com/display/DOCS/Set+up+the+Atlassian+Plugin+SDK+and+Build+a+Project

Описание на официальном сайте немного устарело. Ниже описан работающий на данный момент способ.

Java

Скачать JDK 1.7 с сайта Oracle и установить на компьютер.
Прописать путь в переменной окружения JAVA_HOME: C:\Program Files\Java\jdk1.7.0_51
Добавить путь к бинарникам в начало переменной окружения Path: %JAVA_HOME%\bin;
Проверить версию компилятора: javac -version

Plugin SDK

Скачать SDK: https://marketplace.atlassian.com/download/plugins/atlassian-plugin-sdk-windows
Создать директорию на жёстком диске.
Запустить установщик.

Maven
После установки Plugin SDK добавить переменную окружения M2_HOME так, чтобы использовать Maven, который идет в комплекте к SDK:
D:\atlassian-plugin-sdk\apache-maven-3.2.1
Создать переменную окружения M2:
%M2_HOME%\bin
Создать переменную MAVEN_OPTS:
-Xms768m -Xmx3072m -XX:MaxPermSize=1200m
Добавить путь к бинарникам к переменной окружения Path:
;%M2%
Вписать прокси-сервер в файл настроек:
D:\atlassian-plugin-sdk\apache-maven-3.2.1\conf\settings.xml

<proxies>
<proxy>
<id>tp-local</id>
<active>true</active>
<protocol>http</protocol>
<username>ваше имя в домене Winows</username>
<password>ваш пароль</password>
<host>free.tp-local.ru</host>
<port>3128</port>
<nonProxyHosts>localhost</nonProxyHosts>
</proxy>
</proxies>


Создать папку на локальном диске и записать путь к ней в файл настроек:
D:\atlassian-plugin-sdk\apache-maven-3.2.1\conf\settings.xml

<localRepository>D:\atlassian-maven-repository</localRepository>

Если этого не сделать, то репозиторий у меня окажется на другой машине в сети:  
\\srv09\UserFolders$\novikov\.m2\repository

Дополнительная информация на странице: http://maven.apache.org/download.cgi

Проверка
В командной строке запустить:  
atlas-version
Убедиться, что все пути правильные.

 Запустить экземпляр Jira

Создать на диске директорию для запуска Jira с произвольным именем:
D:/jira
Открыть командную строку и перейти в эту директорию.
Запустить команду
atlas-run-standalone --product jira 
Более подробно смотри Step 1. Install and configure the local JIRA instance и
https://developer.atlassian.com/display/DOCS/atlas-run-standalone
По окончании работы команды на экране появится подобное сообщение:


Скопировать в адресную строку браузера подчёркнутую часть.
Войти в Jira под пользователем admin с паролем admin.
Создать проект с названием TEST и задачу в нём с ключом TEST-1.



Настроить шину WSO2 ESB


Установить Jira Connector

Правила установки Jira Connector приведены в документации:
https://docs.wso2.com/display/ESB480/JIRA+Connector#JIRAConnector-createIssue

Нужно скачать архив с плагином.


 Загрузить плагин в шину через браузер.



 В списке коннекторов нажать на слово Disabled, чтобы сделать загруженный коннектер активным.


 Создать локальную запись jiraauth, которая потребуется позже в медиаторах для авторизации в Jira.
https://docs.wso2.com/display/ESB480/JIRA+Connector#JIRAConnector-ConnectingtoJIRA


 Вставить значение

<jira.init xmlns="http://ws.apache.org/ns/synapse">     
      <username>admin</username>     
      <password>admin</password>     
      <uri>http://02-128.tp-local.ru:2990/jira</uri>  
</jira.init>


URI взять то, что указано в командной строке после запуска Jira.





Создать 2 последовательности медиаторов jiratest и jiraerror для последующего использования в REST API.

Начать с последовательности jiraerror


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



Сохранить последовательность в реестр.




 После jiraerror создать последовательность jira для обработки входящих запросов.


 Указать название последовательности и прикрепить последовательность jiraerror, которая служит для обработки ошибок.




 Переключаемся в XML-представление, чтобы вставить медиатор для получения сведений о задаче в Jira.


Вставить определение медиатора, составленное по примеру в документации:
 https://docs.wso2.com/display/ESB480/JIRA+Connector#JIRAConnector-getIssue





<sequence xmlns="http://ws.apache.org/ns/synapse" name="jira" onError="conf:/jiraerror">
   <jira.getIssue configKey="jiraauth">     
      <issueIdOrKey>TEST-1</issueIdOrKey>  
   </jira.getIssue>

</sequence>


 Добавляем медиатор для записи параметров сообщения в лог.


 Определяем параметр id.


 По ссылке http://02-128.tp-local.ru:2990/jira/rest/api/2/issue/TEST-1 видно, что REST API Jira возвращает JSON.



Об этом также написано в документации:
https://docs.atlassian.com/jira/REST/latest/
https://docs.atlassian.com/jira/REST/latest/jira-rest-plugin.wadl

Как работать с JSON в WSO2 ESB описано здесь:
https://docs.wso2.com/display/ESB481/JSON+Support#JSONSupport-AccessingcontentfromJSONpayloads

Поэтому, чтобы извлечь значение id, пишем json-eval($.id)


Сохраняем последовательность jira в реестр.







Создать API для обращения к Jira.


Назвать API и задать контекст (начало URL). Перейти к созданию ресурса.


Определяем метод GET, стиль URL и определить путь, на который будет отзываться создаваемый ресурс. О маппинге написано в документации:
https://docs.wso2.com/display/ESB481/Creating+APIs#CreatingAPIs-URLmappings
Начать прикрепление последовательности медиаторов с именем jira. Для этого открыть реестр.


Выбрать последовательность из списка.


Перейти к определению последовательности медиаторов, которая будет обрабатывать ошибки, возникающие при обращении к ресурсу. В данном случае повторно использовать последовательность jiraerror. Если последовательности для обработки сбоев нет, то может появится ошибка.


Выбрать последовательность из списка.


Сохранить ресурс.


Сохранить API.


Закрыть сообщение.


Создание API завершено.



Выполнить проверку. Открыть в браузере URL:
http://192.168.4.163:8280/jiratest/test

Убедиться, что id получен из Jira и занесён в лог.


 На этом пошаговая инструкция окончена.

Ссылки на материалы в документации

https://docs.wso2.com/display/ESB480/Managing+Connectors+in+Your+ESB+Instance
https://docs.wso2.com/display/ESB480/Using+a+Connector
https://docs.wso2.com/display/ESB480/JIRA+Connector

https://docs.wso2.com/display/ESB481/JSON+Support
https://docs.wso2.com/display/ESB481/Creating+APIs

https://developer.atlassian.com/display/JIRADEV/Creating+a+JIRA+SOAP+Client
https://docs.atlassian.com/jira/REST/latest/

Комментариев нет:

Отправить комментарий