Libreria Java 1.7 con un programma Java 1.5: quali sono le opzioni

1

Ho una libreria di classi che è compilata con JDK 1.7 Usa diverse caratteristiche e classi 1.7 e sarebbe molto difficile ottenerla ricompilata in JDK 1.5.

Questo deve integrarsi con una vecchia applicazione legacy con attualmente in esecuzione su JRE 1.5. L'integrazione stessa sarà veloce perché la libreria ha solo 1 classe e pochissimi metodi che devono essere chiamati dall'applicazione. I proprietari dell'applicazione non sono pronti a passare a Jre 1.7 immediatamente.

Quali sono le mie opzioni qui? C'è un modo per convertire rapidamente la libreria in un server su cui i metodi possono essere chiamati in remoto dall'applicazione? Ci sono delle strutture disponibili per farlo funzionare rapidamente? Non voglio dedicare troppo tempo a questo perché l'applicazione passerà a 1.7 tra un anno e questo è un problema di interruzione nel frattempo.

C'è un modo migliore per farlo?

    
posta user93353 18.11.2014 - 07:39
fonte

3 risposte

2

Nella mia esperienza ci sono relativamente poche difficoltà nel prendere un'applicazione java 1.5 ed eseguirla su un vm successivo. Java è generalmente abbastanza bravo a mantenere la retrocompatibilità, e le poche parti che non sono compatibili tra le versioni sono per lo più ben separate nella gerarchia di Sun. *

Pertanto punterei a migrare l'applicazione legacy a un vm moderno il prima possibile. C'è poco da guadagnare ritardando quando è probabile che sia un lavoro più semplice di quello che stai proponendo ora.

    
risposta data 18.11.2014 - 08:47
fonte
0

Perché non scrivi un ponte? Qualcosa che utilizza memoria condivisa o qualcosa di simile. Osservando le tue opzioni, non sono sicuro, quanto velocemente dovrebbe funzionare questa cosa. Ma questa è l'unica alternativa che riesco a pensare.

Googling mi dice che non sarà facile neanche ... A meno che tu non usi imq o qualcosa del genere ...

Metodi per condividere memoria o stato attraverso JVM? ancora non facile

    
risposta data 19.11.2014 - 00:37
fonte
0

Non capisco.

It uses several 1.7 features and classes and would be very difficult to get it recompiled in JDK 1.5.

Va bene. Eseguire il backport di una libreria può essere un grosso (costoso) compito. Ma d'altra parte, dici:

The integration itself will be quick because the library has just 1 class and very little methods which need to be called from the application.

Quindi, perché non porti semplicemente le parti di cui hai bisogno e lasci il resto fuori? 1 classe e alcuni metodi sembrano lavorare per un pomeriggio.

The application owners aren't ready to move to Jre 1.7 immediately.

Ma sono consapevoli che l'attuale versione Java è 8? E sono anche consapevoli del fatto che la JVM è migliorata un po 'da Java 5? Nonostante il fatto che non sia una tua decisione, come un programma responsabile a cui importi, devi informare i decisori.

1.7 in a years time and this is a stop gap thing for the meantime.

Perché non portarlo direttamente su Java 8?

What are my options here? Is there a way to quickly convert the library into a Server on which the methods can be called remotely by the application? Are there any frameworks available to get this up and running quickly?

Hm. C'è una soluzione semplice: link che fa esattamente questo.

Spring Boot è facile da configurare. Definisci alcuni percorsi personalizzati, che si associano alla tua lib. Scrivi e distribuisci Spring Boot insieme alla libreria su una scatola JDK 1.7 e chiama dall'altra macchina. Fatto.

    
risposta data 19.11.2014 - 09:50
fonte

Leggi altre domande sui tag