BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 00:19

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

???
Я понял, о чём эта тема! 0%  0%  [ 0 ]
Я томат. 0%  0%  [ 0 ]
Всего голосов : 0
Автор Сообщение
 Заголовок сообщения: [FYI] Нюансы DynamicTariffTreeNode
СообщениеДобавлено: 06 окт 2016, 12:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Наткнулся на интересную штуку.

Повадились пилить собственные узлы тарифных деревьев для модуля Phone:
пакеты трафика, фильтры по карте зон для А-номера и т.п.
Решили, мол, зачем мы будем делать все в jar-ках. Давайте добавим в phone.xml узел "Обработчик" из Inet и будем писать все новые узлы через дин код.

Написали узел, проверяющий по карте зон, что A и B - номера находятся в одной зоне (позволит собрать один универсальный тариф на местную связь для разных городов).
Проверили - работает.
Потом решил заодно установить направление в этом же узле:

Код:
 if (zdrFrom.zoneId > 0 && zdrFrom.zoneId == zdrTo.zoneId) {
                //Добавляем установку направления, если заходим в узел
                if (zdrTo.destId > 0)
                {
                    req.dest = zdrTo.destId;
                }
                if(logger.isDebugEnabled()) {
                    logger.debug("Номера в одной зоне");
                }
                return 1;
            }


- процессы-обработчики молча умирают на строчке
Код:
req.dest = zdrTo.destId;


Происходит так, судя по всему, от того, что поле dest - protected.
И несмотря на то, что наш класс в динкоде находится в том же package, что и AbstractPhoneTariffRequest, он не считает их "соседними", т.к. они в JVM грузятся разными classloader-ами.

Вот и гугл выдал:
http://stackoverflow.com/questions/1046 ... ferent-jar
(там в названии написано про different jar, но в тексте говорится, что ещё и classloader-ы разные).

Такие пироги.

Полезно знать, что новым узлом "обработчик" можно писать только простые узлы-фильтры, не меняющие TariffRequest.
Либо, как мне тут подсказывают java-гуру, пользоваться рефлексией.


Последний раз редактировалось Cromeshnic 06 окт 2016, 17:21, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [FYI] Нюансы DynamicTariffTreeNode
СообщениеДобавлено: 06 окт 2016, 12:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
... либо просить разработчиков, чтобы меняли protected на public :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.197s | 23 Queries | GZIP : On ]