Deve-se remover ou substituir as propriedades de nomenclatura específicas do JBoss usadas ao obter o IntialContext em seu aplicativo.
A ferramenta de migração varre os arquivos Java e de propriedades para os valores de propriedade:
org.jnp.interfaces.NamingContextFactory, jnp://.* e org.jboss.naming.*.
Por exemplo, se um aplicativo especificar as propriedades a seguir, a ferramenta sinalizará o texto em vermelho:
Ao mover o aplicativo para o Liberty, não especifique um factory de contexto
inicial ou uma URL de provedor nas propriedades passadas ao construtor
InitialContext.
Use um construtor vazio, a menos que outras propriedades de nomenclatura estejam sendo configuradas.
O exemplo a seguir ilustra o código do aplicativo que esta regra sinalizará ao migrar para o 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); } |
Para o Liberty, remova manualmente as propriedades desnecessárias:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Além de sinalizar arquivos java, a ferramenta sinalizará arquivos de propriedades para as propriedades específicas do JBoss listadas anteriormente. Para o Liberty, remova essas propriedades do arquivo.
Ao migrar para o WebSphere Application Server tradicional, as mesmas propriedades do JBoss mencionadas anteriormente serão sinalizadas. No scanner de origem, há uma correção rápida para arquivos Java sinalizados que muda os valores de propriedade de nomenclatura do JBoss para os valores que funcionam no WebSphere Application Server tradicional:
O exemplo a seguir ilustra o código do aplicativo que esta regra sinalizará ao migrar para o WebSphere Application Server Traditional:
|
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); } |
Usando o exemplo mostrado anteriormente, depois de executar a correção rápida Java para o WebSphere Application Server tradicional, o código será migrado conforme mostrado:
|
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); } |
Outra opção ao mover para o WebSphere Application Server Traditional é remover as propriedades e usar o construtor InitialContext() vazio.
Observe que a correção rápida disponível no scanner de origem só será aplicada quando o org.jboss.naming for especificado sem uma sequência final,
conforme mostrado no exemplo anterior. Se o valor org.jboss.naming for seguido por uma sequência adicional, a regra sinalizará o valor, mas não
aplicará a correção rápida. Por exemplo, esta propriedade será sinalizada, mas não mudada:
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.
Além de sinalizar arquivos java, a ferramenta sinalizará arquivos de propriedades para as propriedades específicas do JBoss listadas anteriormente. Para o WebSphere Application Server tradicional, remova manualmente essas propriedades do arquivo ou mude-as para os valores de propriedade de nomenclatura do WebSphere.