Работа с новой фичей NCALayer - модули
(0 чел.) 
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • ...
  • 12

ТЕМА: Работа с новой фичей NCALayer - модули

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3149

  • developer
  • Захожу иногда
  • Постов: 51
  • Репутация: 3
Я имею в виду, чтобы сформировать jar и скомпилировать наш bundle, нам необходимо в одном из классов сделать

import kz.gov.pki.osgi.layer.api.ModuleService;
public class ModuleServiceImpl implements ModuleService


Но где нам взять этот ModuleService?

То же самое с JSONObject, для компиляции мы его добавим в бандл, но он будет лишним, т.к. когда мы подключим наш бандл, он будет иметь доступ к JSONObject

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3150

  • developer
  • Захожу иногда
  • Постов: 51
  • Репутация: 3
Просто предположили, что у большинства разработчиков есть сертификаты для подписи кода. Так ведь можно тестировать вживую.

Допустим сертификат есть, и бандл готов и подписан. Но в NCALayer кнопка "Установить модуль" неактивна.

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3151

  • ololo
  • Живу я здесь
  • Постов: 464
  • Репутация: 57
Наверное, я что-то неправильно понимаю.
Самой библиотеки с классом ModuleService нет? В SDK же вроде BundleServiceAPI.jar есть.
При сборке бандла не нужно включать библиотеки, к которым есть доступ через импорты. Они нужны только при компиляции.
"Установить модуль" становится доступной только для модулей, описанных в ncalayer.der. То есть нужно сначала его описать в этом файле. Для локального теста:
- вы передаете просто сертификат подписи кода (закрытый ключ не нужен!) и Bundle-SymbolicName
- они заносятся в ncalayer.der и файл передается вам
- вы заменяете у себя локальный ncalayer.der и кладете свой jar в папку bundles
- NCALayer при запуске устанавливает бандл из папки
- если все соответствует описанию дает право на запуск.
Тут есть 2 вещи.
1. ncalayer.der заменяется каждый раз при запуске версией из сервера. для этого есть 2 варианта:
а) ncalayer.der подписывается в целях тестирования с неправильной ссылкой для обновления, чтобы предотвратить замену
б) ncalayer.der будет размещаться на сервере и на время тестирования у модуля будет атрибут hidden, чтобы его не было видно в управлении модулями ncalayer, чтобы не путать текущих пользователей.
Вариант а) предпочтительнее. Не забываем, что эта версия файла только для тестовых окружений. Если нужно вернуть работоспособность обновления, то просто удаляете ncalayer.der. При следующем запуске NCALayer вытащит свою старую версию, потом скачает новую.
2. NCALayer ставит только новую версию бандла из папки bundles, иначе просто игнорирует и удаляет. При тестировании накладно постоянно повышать версию, поэтому при изменении бандла предварительно надо из папки ncalayer-cache удалить свой бандл (папка bundle{порядковый-номер} , обычно последний).

Сейчас одна система уже тестирует свой бандл на NCALayer. Мы для них сделали локальную версию ncalayer.der
gg wp
Изменено: 2 года, 2 мес. назад от ololo.
Спасибо сказали: developer

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3152

  • developer
  • Захожу иногда
  • Постов: 51
  • Репутация: 3
Спасибо, BundleServiceAPI.jar не увидел.

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3163

  • developer
  • Захожу иногда
  • Постов: 51
  • Репутация: 3
Получить NCALayerService (для доступа к криптопровайдеру) можно только загрузив свой модуль в рабочий NCALayer?

Код из примера.
ServiceTracker<NCALayerService, NCALayerService> ncaLayerService_tracker = new ServiceTracker(context, context.createFilter(filter), null);
	        ncaLayerService_tracker.open();
	        ncaLayerService = ncaLayerService_tracker.getService();

Re: Работа с новой фичей NCALayer - модули 2 года, 2 мес. назад #3164

  • ololo
  • Живу я здесь
  • Постов: 464
  • Репутация: 57
да, это все доступно только через BundleContext
gg wp
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • ...
  • 12
FaLang translation system by Faboba