Sayat написал:
Спасибо за предоставленную информацию.
Изучил код по данной ссылке.
Возникает другой вопрос:
Как нам загружать в модуле класс
kz.gov.pki.knca.gui.dialog.SignerDialog
и другие классы для отображения окна выбора пути и пароля при подписывании ЭД?
Здравствуйте!
Класс SignerDialog не экспортирован модулем, поэтому недоступен снаружи.
Но вы можете обращаться от одного модуля к другому, находя их среди сервисов.
Приводите к ModuleService и вызываете process с нужными параметрами
String moduleServiceFilter = "(&(objectClass=" + ModuleService.class.getName() + ")(module=kz.gov.pki.knca.commonUtils))";
ServiceTracker<ModuleService, ModuleService> moduleService_tracker = new ServiceTracker(context, context.createFilter(logServiceFilter), null);
moduleService_tracker.open();
ModuleService moduleService = moduleService_tracker.getService();
if (moduleService == null) {
context.addServiceListener((e) -> {
if (e.getType() == ServiceEvent.REGISTERED) {
moduleService = moduleService_tracker.getService((ServiceReference<ModuleService>) e.getServiceReference());
info("Found ModuleService while listening");
}
}, moduleServiceFilter);
} else {
info("Found ModuleService on load");
}
Дальше передаете метод и аргументы в json.
Но в случае обращения к другим модулям нет гарантии, что они не могут измениться и сломать работу вашего модуля.