L'importazione di un pacchetto fornisce un ulteriore livello di riferimento indiretto rispetto alla richiesta di un pacchetto.
Considerare il caso di alcune API standard ... org.standard.framework. Supponiamo che due aziende implementino questa API, forse hai bundle com.abc.framework e com.xyz.framework. Entrambi questi pacchetti di implementazione esporterebbero il pacchetto org.standard.framework.
Supponiamo ora che sia necessaria un'implementazione org.standard.framework, ma non si cura particolarmente quale. Se hai bisogno di com.abc.framework o com.xyz.framework bundle, ti stai legando a una particolare implementazione. Con una direttiva import-package, stai permettendo a OSGi di servire come un livello di riferimento indiretto.
Un altro vantaggio del pacchetto di importazione è che le dipendenze non devono essere modificate se un pacchetto viene spostato in un altro pacchetto. Questa situazione può sorgere durante il refactoring quando i bundle sono suddivisi o combinati.
Per questi motivi, gli scrittori di specifiche OSGi ora generalmente consigliano di utilizzare la direttiva relativamente più recente del pacchetto di importazione su require-bundle. Il problema è che non tutti i pacchetti sono pronti per questo. Molti non specificano ancora una versione durante l'esportazione di un pacchetto. Ciò rende poco pratico il pacchetto di importazione in molti casi.
fonte
2012-12-19 21:37:11
Non tutti i pacchetti importati contengono plug-in. Utilizza prima i plug-in richiesti. Usa i pacchetti importati quando necessario. –