Реализация шлюзов на BeanShell,примеры стандартных и других шлюзов
Материал из BiTel WiKi
Stark (Обсуждение | вклад) |
Stark (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Здесь описано как реализовывать шлюзы с помощью языка Beanshell. И есть примеры реализации. | Здесь описано как реализовывать шлюзы с помощью языка Beanshell. И есть примеры реализации. | ||
- | Возможность создавать скриптовые шлюзы появилась в версии 4.5 . В конфигурации | + | Возможность создавать скриптовые шлюзы появилась в версии 4.5 . |
+ | |||
+ | В конфигурации типов шлюзов вы можете указывать например : | ||
+ | |||
+ | <source lang="bash"> | ||
+ | user_rule.editor.class=bitel.billing.module.services.ipn.editor.ManadContractRuleEditor | ||
+ | gate_manager.class=bitel.billing.server.ipn.ManadGateWorker | ||
+ | </source> | ||
+ | |||
+ | Здесь user_rule.editor.class - это класс, который отображает редактор шлюза в клиенте биллинга и сохрянет данные шлюза .Вы можете поставить один из стандартных классов(указаны в докуменатции в соотвествующих главах) либо поставить user_rule.editor.class.EmptyContractRuleEditor, если реадактировать шлюз не нужно в договоре. | ||
+ | gate_manager.class - это класс , осуществляющий взаимодействие со шлюзом на стороне сервера биллинга. Именно логику этого класса мы и подменяем своим скриптовым шлюзом. На вкладке "Скрипт" при редактировании типа шлюза задается скрипт BeanShell . В нем должна быть обязательно реализована функция doSync() именно она и отвечает за взаимодействие со шлюзом. Вот код минимального шлюза: | ||
+ | |||
+ | <source lang="java"> | ||
+ | protected void doSync() | ||
+ | { | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | Вы можете указать user_rule.editor.class=bitel.billing.server.ipn.EmptyGateWorker. Но если вы подменяете логику работы одного из стандартных шлюзов, то желательно указывать класс этого шлюза, т.к. логика его работы будет подменена , но есть еще другие правила, например в случае сложных иерархических шлюзов производится синхронизация с родителським шлюзом и она пока не может быть реализована скриптовым шлюзом. | ||
+ | |||
+ | В В конфигурации типа шлюза надо задать строку : | ||
<source lang="bash"> | <source lang="bash"> | ||
use.script=1 | use.script=1 |
Версия 12:18, 4 сентября 2008
Здесь описано как реализовывать шлюзы с помощью языка Beanshell. И есть примеры реализации.
Возможность создавать скриптовые шлюзы появилась в версии 4.5 .
В конфигурации типов шлюзов вы можете указывать например :
user_rule.editor.class=bitel.billing.module.services.ipn.editor.ManadContractRuleEditor gate_manager.class=bitel.billing.server.ipn.ManadGateWorker
Здесь user_rule.editor.class - это класс, который отображает редактор шлюза в клиенте биллинга и сохрянет данные шлюза .Вы можете поставить один из стандартных классов(указаны в докуменатции в соотвествующих главах) либо поставить user_rule.editor.class.EmptyContractRuleEditor, если реадактировать шлюз не нужно в договоре. gate_manager.class - это класс , осуществляющий взаимодействие со шлюзом на стороне сервера биллинга. Именно логику этого класса мы и подменяем своим скриптовым шлюзом. На вкладке "Скрипт" при редактировании типа шлюза задается скрипт BeanShell . В нем должна быть обязательно реализована функция doSync() именно она и отвечает за взаимодействие со шлюзом. Вот код минимального шлюза:
protected void doSync() { }
Вы можете указать user_rule.editor.class=bitel.billing.server.ipn.EmptyGateWorker. Но если вы подменяете логику работы одного из стандартных шлюзов, то желательно указывать класс этого шлюза, т.к. логика его работы будет подменена , но есть еще другие правила, например в случае сложных иерархических шлюзов производится синхронизация с родителським шлюзом и она пока не может быть реализована скриптовым шлюзом.
В В конфигурации типа шлюза надо задать строку :
use.script=1
Стандартные шлюзы
- Реализация стандартного шлюза Manad на Beanshell
- Реализация стандартного шлюза Cisco на Beanshell
- Реализация стандартного шлюза Mikrotik на Beanshell
- Реализация стандартного шлюза Cisco2 на Beanshell
- Реализация стандартного шлюза коммутатора Zyxel (под Cisco2) на Beanshell