Sto scrivendo un programma server che viene utilizzato per eseguire unit test di un API (visualizzazione di un sacco di informazioni e di fornire l'accesso web per controllare /monitorare il tutto) ...Posso scaricare e ricaricare dinamicamente (altre versioni dello stesso) JAR?
Questa API è noto al server durante il periodo di compilazione e viene fornito come JAR .
Per poter confrontare tra i risultati di prova Unità di diverse versioni delle API (senza riavviare il server), io voglio essere in grado di scaricare la versione 'corrente' delle API, e per ricaricare uno più recente (o uno più vecchio).
Non voglio usare URLClassLoader e richiamare ogni singolo metodo per nome
(usando getDeclaredMethod("someMethod")
),
perché il server pesantemente dipende dalla API e sarebbe complicato a 'wrap' ogni chiamata di metodo in modo così sporco.
Stavo pensando: Dal momento che tutte le interfacce di tutti versioni del JAR sono stesso, non potrei farlo in qualche modo a ricaricare un'altra versione del JAR (senza che per nome-invocazione?).
Nota: sto utilizzando l'ultima versione di Java SE (6) e Java EE (5).
Se si pensa, ciò che sto cercando di ottenere non è possibile, si prega di suggerire una "soluzione" o un concetto diverso.
Vedi anche: http://stackoverflow.com/questions/148681/unloading-classes-in-java – sleske