вторник, 23 апреля 2013 г.

Oracle API Gateway. Как создать свой фильтр.


Oracle API Gateway (OAG) это бывший Oracle Enterprise Gateway.
Выполнить свой java код можно следующими способами:
  1. Используя Scripting Language Filtr вызвать нужный метод из javascript, как это делать описано тут.
  2. Написав свой собственный фильтр, который будет иметь свой интерфейс в Policy Studio. Как это сделать описано ниже. 
Как создавать свои фильтры, было хорошо описано для предыдущей версии продукта в документации. В новой версии процесс добавления нового собственного фильтра изменился.

Инструкция для версии Oracle API Gateway 11.1.2.1.0


Документация на новую версию OAG можно посмотреть тут.
В приведенном примере создается SimpleFilter который можно использовать в качестве шаблона для разработки собственных фильтров.
Для создания кастомного фильтра нужно выполнить следующие шаги:
  1. Создать два xml файла: 
    • SimpleFilter.xml - каждый фильтр имеет XML описание (TypeDoc), содержащее опредеение типов сущностей фильтра (поля, класс фильтра, параметры для логирования). 
    • sampleTypeSet.xml - используется для группировки нескольких TypeDoc. Должел лежать в той же папке, что и TypeDoc-и.
  2. Создать классы фильтра: 
    • SimpleFilter.java - каждый фильтр имеет относящийся к нему класс, который инкапсулирует данные конфигурации для конкретного экземпляра фильтра. Данный класс возвращает соответствующий класс Processor и классы Policy Studio. 
    • SimpleProcessor.java - runtime компонент, отвечающий за обработку сообщения. 
    • SimpleFilterUI.java и SimpleFilterPage.java - классы, для настройки параметров фильтра через интерфейс Polisy Studio. 
    • resources.properties - локализация для интерфейса Polisy Studio. 
    • simple.gif - иконка фильтра. 
  3. Скомпилировать классы в .jar файл, и зарегистрировать его (добавить в Runtime Dependencies в Policy Studio). Для этого:
    • Положите JAR в директорию INSTALL_DIR/ext/lib, где INSTALL_DIR это папка, в которую установлен API Gateway. 
    • В главном меню Policy Studio выберите Window -> Preferences -> Runtime Dependencies, нажмите Add и добавьте .jar в список (сделайте то же самое для всех используемых вашим фильтром сторонних JAR файлов). Перезапустите API Gateway. 
    • Перезапустите Policy Studio с флагом -clean: policystudio -clean
  4. Загрузить TypeDoc в Policy Studio, после этого фильтр станет доступным для добавления его в политику. Для этого в Policy Studio:
    • Нажмите кнопку "Edit Active Configuration".
    • В главном меню выберите Select File->Import Custom Filters
    • Выберите sampleTypeSet.xml



Теперь можно нажать кнопку Deploy, что бы изменения не потерялись после выхода из Policy Studio и использовать фильтр в политиках.

Скачать целиком архив с Netbeans проектом фильтра можно тут. Фильтр только для примера построения на его основе других фильтров и никакой логики не выполнят.

P.S. 
Приведенные в документации примеры классов поменялись. Для того, что бы написать фильтр, нужно смотрить javadoc (например из дистрибутива).
com.vordel.circuit.FilterConfigureContext нужно заменить на com.vordel.precipitate.SolutionPack

Метод setDefaultProperties() больше не используется (Deprecated. There are no global default properties.)

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