Делаешь отдельный пакет, где будут лежать все абстракции (interface-ы), которые должны быть доступны для плагинов.
При разработке плагина надо будет ссылаться на этот пакет, и реализовать нужные интерфейсы.
Потом собранный плагин кладётся в специальную папку, которую ты сам должен будешь определить.
А при запуске приложения просто проверяешь эту папку, динамически грузишь классы из пакетов в этой папке.
А потом через рефлексию создаёшь экземпляры классов этих плагинов и используешь как хотел.
А начать нужно с нормальной архитектуры, которую можно будет расширять.
galaxy, не понял.
Тоесть если я сделаю в базе тип timestamp with timezonе, и передам туда условно "2021-11-18T00:59:00+5", то в базу сохранится просто "2021-11-17T19:59:00" без указания оригинального сдвига?
Да, обязательно.
Если компания трудоустроит себе программиста без высшего образования - будет огромный штраф либо срок от 5 лет для генерального директора, кадровика, и главного бухгалтера.
Делаешь отдельный пакет, где будут лежать все абстракции (interface-ы), которые должны быть доступны для плагинов.
При разработке плагина надо будет ссылаться на этот пакет, и реализовать нужные интерфейсы.
Потом собранный плагин кладётся в специальную папку, которую ты сам должен будешь определить.
А при запуске приложения просто проверяешь эту папку, динамически грузишь классы из пакетов в этой папке.
А потом через рефлексию создаёшь экземпляры классов этих плагинов и используешь как хотел.
А начать нужно с нормальной архитектуры, которую можно будет расширять.