Java - aplikacja z systemem aktualizacji, modułami, pluginami

Odpowiedz Nowy wątek
2011-07-16 16:17
0

Witam,
otóż biorę się za napisanie dużej aplikacji z kilkoma modułami (baza danych, web engine do pobierania informacji, raportowanie). Chciałbym aby aplikacja mogła aktualizować się przez internet pobierając odpowiednie pliki z serwera (wtedy nie trzeba było by ponownie konfigurować aplikacji itd). Ktoś ma pomysły jak to zrobić? Próbowałem rozgryźć JDownloadera, całość programu chyba jest w jednym pliku .jar co mnie mocno zdziwiło. Program posiada też drugi .jar jdupdate który jak łatwo się domyślić odpowiada aktualizacje.
Zastanawiam się też nad podejściem takim, żeby rozbić aplikację na kilka plików .jar. Wtedy mała aplikacja uruchamiana przed główną aplikacją kontaktowała by się ze serwerem i ew podmieniała pliki które są stare. Nie wiem tylko jeszcze jak zaprojektować ewentualne moduły tak, żeby korzystać z nich w głównej aplikacji. Chciałem do systemu modułów użyć Java Plugin Framework (JPF) ale jest on nieaktualizowany od 2007 więc chyba średnio się nada do aplikacji. OSGi na razie nie mogę totalnie zrozumieć a mało jest tutoriali w sieci. Dlatego myślę, że obsługą pluginów (tzn. wczytywaniem plików jar) zajmie się główna klasa i jeżeli nie będą istniały odpowiednie pliki jar to zakończy aplikację żeby ta nie wyrzucała błędów.
Trzecia sprawa to system pluginów podobny do tego z JDownloadera. Mianowicie zauważyłem, że używa on do pobierania z serwisów systemu pluginów opartego o pliki
.class . Trochę poszperałem po sieci i znalazłem coś takiego jak URLClassLoader. Czy ta klasa wystarczy do obsługi zewnętrznych plików klas? Jak utworzyć taki plik np. w NetBeans lub Eclipse?

Z góry dzięki za wszelkie sugestie.
Pozdrawiam

Pozostało 580 znaków

2011-07-16 16:56
0

A próbowałeś oprzeć swój program np na NetBeans Platform (http://netbeans.org/features/platform/)?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2011-07-16 20:41
0

potrzebujesz 2 jary na windowsie (na unixach wystarczy jeden, bo system pozwala usuwać używaną binarkę).

W programie uruchamiasz aktualizatora (przez Runtime.exec) i wyłączasz sam program. Aktualizator ściąga najpierw nowszą wersję, potem podmienia plik z programem i go uruchamia.

URLClassLoader wystarczy do obsługi zewnętrznych bibliotek. Ale lepiej nie opieraj wszystkiego na .getMethod().invoke(), tylko zrób odpowiednie interfejsy.

Może się przyda jeszcze takie coś: http://pastebin.com/0vhhbFT6
Znalezione w necie i zmodyfikowane

Pozostało 580 znaków

2011-07-16 21:12
ismail
0

Patrzylem ten link. Powiedz mi prosze, dlaczego potrzebny jest jakis ZipClassLoader? Przeciez jar to zip, a wiec URLClassLoader czy inny standardowy sobie z tym poradzi.

Mi coś właśnie nie chciało to działać, dlatego posłużyłem się czymś takim. - Razi91 2011-07-16 23:04

Pozostało 580 znaków

2011-07-22 17:01
0

Netbeans platform wygląda nieźle. Obawiam się tylko czy narzut środowiska nie będzie zbyt duży. Ma ktoś z tym jakieś doświadczenie?
I czy ma ktoś jakieś tutoriale do tego środowiska bo "Top 10 API" za wiele mi nie wyjaśniło... a na youtube coś mało materiałów więc chyba nie jest to zbyt popularne środowisko.

Pozostało 580 znaków

2011-07-22 17:07
0

http://netbeans.org/features/platform/all-docs.html

Ogólnie start aplikacji trochę zajmuje, ale potem już nie zauważyłem jakiś problemów z wydajnością. Chociaż nic specjalnie dużego nie pisałem(prosty CRUD).


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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