Zarządzanie pluginami w programie

0

Witam!
Mam do napisania, coś co można nazwać sniferem do seci bezprzewodowej. Nie będę się zagłebiał w szczegóły, gdyż nie o to tu chodzi. Problem jęsli można to tak nazwać polega na tym, że program musi być skonstruowany na zasadzie pluginów. Chodzi o to, że chciałbym mieć folder z pluginami, z którego aplikacja wczytywałaby dostępne wtyczki, z których później by korzystała.
I tu liczę na waszą pomoc, a raczej pomysły, jak byście to rozwiązali.

Z góry dzięki za odpowiedź.
pozdrawiam

0

O pluginach było na forum wielokrotnie. Szukaj - było!

0

hmmm powiem szczerze ze ja nic nie znalazlem :-|
zapodalbys linka?
a co do pluginow, to po prostu:

  • plugin przechowuj jako plik jar
  • ktory zawiera klasy implementujace okreslone interfejsy
  • przy uruchomieniu aplikacji przeszukuj folder plugins w poszukiwaniu plikow *.jar
  • znalezione dolaczaj do listy do wybrania
  • i np. do menu pobierajac odpowiednie opcje z pliku jar np. JMenu getMenu()

pozdrawiam

0

A podczas kompilowania kompilator nie bedzie się czepiał, że nie ma interfejsów razem z klasą pluginu?

0
Szczawik napisał(a)

O pluginach było na forum wielokrotnie. Szukaj - było!

Ehmm, ja też szukałem i jakoś nic nie znalazłem.

eximius napisał(a)
  • i np. do menu pobierajac odpowiednie opcje z pliku jar np. JMenu getMenu()

Ogólnie dokładnie o czymś takim myślałem, tylko czy tu nie powinno wystąpić ładowanie klas? Jeśli mógłbyś uściślić ten podpunkt to będę wdzięczny :)

0
jakTo napisał(a)

A podczas kompilowania kompilator nie bedzie się czepiał, że nie ma interfejsów razem z klasą pluginu?

nie - po to sa interfejsy! "oddzielaj implementacje od abstrakcji!"
patrz np. JDBC - jeden interfejs - wiele sterownikow! :)

Shimmy napisał(a)

Jeśli mógłbyś uściślić ten podpunkt to będę wdzięczny

sie robi!
masz sobie swoja app
dodatkowo tworzysz biblioteke ktora posiada niezbedne interfejsy/klasy np.

interface MojPlugin{
    public String przedstawSie();
    public JMenu getMenu();
    ...
}

jako osobny projekt i exportujesz do jara
tego jara importujesz zarowno w swoim projekcie jak i w kazdym pluginie i juz mozesz uzywac nowych mozliwosci!
jary powinny ladowac sie dynamicznie, poza tym masz Class.forName() itp

pozdrawiam

0

No dokładnie o tym myślałem, i tak też zrobiłem, śmiga wszystko aż miło :-)
Wielkie dzięki :)

0

Ale jak kompiluje plugin to mam do każdego pluginu dodawać ten sam interfejs? To trochę nieoszczedne.

0

masz go implementowac! dodajesz tylko w ClassPath.

pozdrawiam

0

Co dodaje w ClassPath? Możesz to zaprezentować?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0