2015-05-09 6 views
0

Я пытаюсь создать фреймворк для плагинов/приложений, и я думаю, что я решил использовать интерфейс поставщика услуг (SPI) на Java для достижения этого. Конечным видением является то, что люди могут загружать плагины (например, в хранилище приложений), а затем просто бросать банки в папку, и они будут работать с существующей программой.Предоставить интерфейс поставщика услуг Java для поставщиков услуг

Итак, у меня есть класс PluginInterface, который будет моим SPI. Я хочу, чтобы все плагины реализовали этот класс (он имеет базовые методы, такие как doesAccept, handle и т. Д.). Поскольку третьи стороны будут создавать поставщиков услуг, , как я могу позволить им ссылаться на этот интерфейс Java в своем коде (чтобы они могли его реализовать), не передавая им исходный код основного приложения?

ответ

0

Создайте два JARs api и impl, где вы разместите свое приложение в импланте и поместите код, который вам нужен, чтобы поделиться с сторонним разработчиком в api.

Пример: JAXB-api.jar и JAXB-impl.jar

+0

Любая идея, как я могу создать баночку с только некоторые выбранным кодом (в Intellij или в командной строке)? – JackBlack1

+0

Вам нужно создать проект с несколькими maven. Где у вас есть два проекта api и impl. – Eranda

+0

Maven не является обязательным вариантом в Java, но это не тема ;-) Чтобы правильно упаковать ваши JARS, нужно уважать [учебник] (http://docs.oracle.com/javase/tutorial /sound/SPI-intro.html) ... – bdulac