È necessario rimuovere o sostituire le proprietà di denominazione specifiche di JBoss utilizzate quando si acquisisce IntialContext nell'applicazione.
Lo strumento di migrazione analizza i file Java e delle proprietà per ricercare i valori della proprietà org.jnp.interfaces.NamingContextFactory, jnp://.* e org.jboss.naming.*.
Ad esempio, se un'applicazione specifica le seguenti proprietà, lo strumento dovrebbe contrassegnare il testo rosso:
Durante lo spostamento dell'applicazione in Liberty, non specificare una factory di contesto iniziale o un
URL del provider nelle proprietà passate al costruttore InitialContext.
Utilizzare un costruttore vuoto a meno che non vengano impostate altre proprietà di denominazione.
L'esempio riportato di seguito illustra il codice dell'applicazione che verrà contrassegnato da questa regola durante la migrazione verso Liberty:
|
import java.util.Hashtable; import javax.naming.InitialContext; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); ht.put("java.naming.provider.url", "jnp://localhost:1099"); ht.put("java.naming.factory.url.pkgs", "org.jboss.naming"); InitialContext ctx = new InitialContext(ht); } |
In Liberty, rimuovere manualmente le proprietà non necessarie:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Oltre a contrassegnare i file java, lo strumento contrassegna i file delle proprietà per le proprietà specifiche di JBoss elencate in precedenza. Per Liberty, rimuovere tali proprietà dal file.
Durante la migrazione a WebSphere Application Server tradizionale, le stesse proprietà JBoss menzionate in precedenza verranno contrassegnate. Nello scanner origine è presente una correzione rapida per i file Java contrassegnati che cambia i valori delle proprietà di denominazione JBoss con quelli utilizzati in WebSphere Application Server tradizionale:
L'esempio riportato di seguito illustra il codice dell'applicazione che verrà contrassegnato da questa regola durante la migrazione verso WebSphere Application Server tradizionale:
|
import java.util.Hashtable; import javax.naming.InitialContext; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); ht.put("java.naming.provider.url", "jnp://localhost:1099"); ht.put("java.naming.factory.url.pkgs", "org.jboss.naming"); InitialContext ctx = new InitialContext(ht); } |
Utilizzando l'esempio mostrato in precedenza, dopo aver eseguito la soluzione rapida Java per WebSphere Application Server tradizionale, il codice verrà migrato come mostrato:
|
import java.util.Hashtable;; import javax.naming.InitialContext;; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory"); ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:2809"); ht.put("java.naming.factory.url.pkgs", "com.ibm.ws.naming"); InitialContext ctx = new InitialContext(ht); } |
Un'altra opzione quando si passa a WebSphere Application Server tradizionale consiste nella rimozione delle proprietà e nell'utilizzo del costruttore InitialContext() vuoto.
Si noti che la correzione rapida disponibile nello scanner sorgente verrà applicata solo quando è specificato org.jboss.naming enza stringa finale
come mostrato nell'esempio precedente. Se il valore org.jboss.naming è seguito da ulteriori stringhe, la regola contrassegnerà il valore, ma non applicherà la correzione rapida. Ad esempio, questa proprietà verrà contrassegnata, ma non modificata:
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.
Oltre a contrassegnare i file java, lo strumento contrassegna i file delle proprietà per le proprietà specifiche di JBoss elencate in precedenza. Per WebSphere Application Server tradizionale, rimuovere manualmente tali proprietà dal file o modificarle con i valori delle proprietà di denominazione WebSphere.