Реализация шлюзов на BeanShell,примеры стандартных и других шлюзов

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
Строка 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

Стандартные шлюзы

Примеры шлюзов

Личные инструменты