Приложение с поддержкой плагинов

  • Автор темы Автор темы sn@ke
  • Дата начала Дата начала
S

sn@ke

Требуется разработать приложение с поддержкой плагинов на JAVA. Плагины будут в jar-файлах. Может у кого есть доки как это делается с примерами, может какие ссылки интересные по этому вопросу есть. Гуглюсь уже два дня и ни чего толкового по этому вопросу не нашел.
 
А в чем конкретно проблема?
Насколько я себе представляю задачу, сделать предстоит что-то наподобие такого:
1. продумать интерфейсы, которые должен будет реализовывать какой-то класс плагина, чтобы приложение могло с ним взаимодействовать. В простейшем случае интерфейс может состоять из какого-нибудь метода типа init, инициализирующего плагин, которому в качестве параметра будут передаваться некоторые объекты твоего приложения, необходимые плагину, чтобы с приложением взаимодействовать
2. для собственно удобства в каждый jar класть, например, xml-файлик, описывающий плагин: название, полное имя класса, реалзиующего нужный интерфейс из п.1, ну и всякие там дополнительные сведения по вкусу
3. при запуске приложения загрузить плагины: прошерстить соотв. папочку, перебрать все имеющиеся там jar'ы. У каждого jar'а из xml-файла (п.2) узнать, как зовется главный класс, создать объект этого класса и вызвать на нем нужные методы (п.1). Здесь нужно смотреть в сторону java.reflection. Возможно, для реализации этого этапа потребуется написание своего class loader'а, но это вроде не сильно сложно.
В общем, технические сложности, я думаю, возникнут лишь на третьем этапе, на первых двух нужно просто определиться, каким образом плагины будут взаимодействовать с приложением и приложение с плагинами, ну и, соответственно, что им для этого нужно знать друг о друге.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab