In passato, ho utilizzato il metodo standard per aggiungere @Deprecated
annotazioni ai metodi API che verranno rimossi in una versione successiva.
Ora sto preparando una versione principale per una libreria, con molte parti API rimosse e rinominate.
Per semplificare la transizione per gli utenti esistenti, potrebbe essere utile se la nuova versione della libreria può essere utilizzata parallelamente alla vecchia versione.
I vantaggi
- è possibile implementare la commutazione dinamica tra le versioni
- le applicazioni possono tornare alla versione precedente se vengono rilevati errori nella nuova versione (utile in fase beta)
Per fare questo, potrei semplicemente spostare la nuova versione della libreria in un nuovo pacchetto da com.mycompany.library
a com.mycompany.library.v2
Questa è una pratica comune o ci sono altre raccomandazioni per l'uso side-by-side delle librerie Java?
Sfondo:
la libreria è un semplice convertitore di documenti. Quindi oltre a un mehtod di conversione (dentro, fuori), ha molte proprietà di configurazione e alcuni gestori di eventi. Se fornisco l'utilizzo side-by-side, i consumatori potrebbero creare istanze e configurazioni dinamiche:
if (useVersion2) {
com.mycompany.library.v2.Converter c = new com.mycompany.library.v2.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
} else {
com.mycompany.library.Converter c = new com.mycompany.library.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
}
(domanda spostata dal link )