Java Service
Я думаю, что не все знают, что в Java есть зачатки модульности (которые были полностью реализованы в 1.7), поэтому хотелось бы рассказать о них
Сама система элементарна: создается файл с названием интерфейса и в него вносятся имплементации этого интерфейса, после чего этот файл помещается в манифест + простенький код, чтобы взять имплементацию (в самой яве это реализовано в виде рефлектиона). Давайте посмотрим на практике:
MyInterface
public interface MyInterface {
void myMethod();
void onlyFirstImpl();
}
Main
import java.util.ServiceLoader;
public final class Main {
/**
* @param args
*/
public static void main(String[] args) {
ServiceLoader<MyInterface> service = ServiceLoader.load(MyInterface.class);
for(MyInterface implementation : service) {
implementation.myMethod();
if(implementation.getClass().getSimpleName().equalsIgnoreCase(&qu ot;firstimplementation"))
implementation.onlyFirstImpl();
}
}
}
Собственно, что мы видим в маине? - загрузка java service, а затем действия с найденым массивом имплементаций, так же в код я включил проверку на нужную имплементацию по имени класса имплементации.
Далее нам требуется в нашем модуле создать имплементации нашего интерфейса (MyInterface), после чего положить в папку манифеста файл с именем:
package.interfaceName
В нашем же случае оно будет выглядеть так:
MyInterface
Так же потребуется внутрь этого файла записать информацию о имплементациях, например:
myPackage.Implementation
trololo.module.Impelement
(ц) programmos, копипаст разрешен лицензией бсд