Não usar valores de propriedade da JNDI específicos do JBoss

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:

Liberty

Arquivos Java

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();
}

Arquivos de propriedade

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.

WebSphere Application Server tradicional

Arquivos Java

Ao migrar para o WebSphere Application Server tradicional, as mesmas propriedades do JBoss mencionadas anteriormente serão sinalizadas. Uma correção automatizada sinalizará os arquivos Java que alteram os valores da propriedade 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, o código será migrado como 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.

Quando fornecida, a correção automatizada só será aplicada quando o org.jboss.naming for especificado sem a string final como mostrado no exemplo anterior. Se o valor org.jboss.naming for seguido por uma cadeia de caracteres adicional, a regra sinalizará o valor. Por exemplo, esta propriedade será sinalizada: java.naming.factory.url.pkgs = org.jboss.naming:org.jnp.interfaces.


Arquivos de propriedade

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.