Nu utilizaţi valori de proprietate JNDI specifice JBoss

Trebuie să înlăturaţi sau să înlocuiţi proprietăţi cu denumiri specifice JBoss utilizate la obţinerea IntialContext din aplicaţia dumneavoastră. Unealta de migrare scanează Java şi fişierele de proprietăţi pentru valorile de de proprietăţi: org.jnp.interfaces.NamingContextFactory, jnp://.* şi org.jboss.naming.*. De exemplu, dacă o aplicaţie specifică următoarele proprietăţi, unealta va afişa următorul text în culoarea roşie:

Liberty

Fişiere Java

Când mutaţi aplicaţia dumneavoastră la Liberty, nu specificaţi o fabrică de context iniţial sau un furnizor URL în proprietăţile transmise la constructorul InitialContext. Utilizaţi un constructor gol cu excepţia cazului în care sunt setate alte proprietăţi de numire.

Următorul exemplu ilustrează codul aplicaţiei pe care îl va afişa această regulă la migrarea la 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);
}

Pentru Liberty, înlăturaţi manual proprietăţile nenecesare:


import javax.naming.InitialContext;
...
void main( String[] args ) {
InitialContext ctx = new InitialContext();
}

Fişiere de proprietăţi

În plus faţă de semnalarea fişierelor Java, unealta va semnala fişierele de proprietăţi pentru proprietăţile specifice JBoss enumerate anterior. Pentru Liberty, înlăturaţi aceste proprietăţi din fişier.

WebSphere Application Server tradiţional

Fişiere Java

La migrarea la WebSphere Application Server tradiţional, vor fi semnalate aceleaşi proprietăţi JBoss menţionate anterior. În scanerul de sursă, există o corecţie rapidă pentru fişierele Java semnalate care modifică valori de proprietăţi de numire JBoss la valorile care lucrează în WebSphere Application Server tradiţional:

Următorul exemplu ilustrează codul aplicaţiei pe care îl va semnala această regulă la migrarea la WebSphere Application Server tradiţional:


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

Folosind exemplul arătat anterior, după rularea corecţiei rapide Java pentru WebSphere Application Server tradiţional, codul va fi migrat astfel:


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

Altă opţiune la mutarea la WebSphere Application Server tradiţional este înlăturarea proprietăţilor şi utilizarea constructorului InitialContext() gol.

Reţineţi că corecţia rapidă disponibilă în scanerul de sursă va fi aplicată numai când este specificat org.jboss.naming fără şir postambul, aşa cum se arată în exemplul anterior. Dacă valoarea org.jboss.naming este urmată de alt şir, regula va semnala valoarea dar nu se aplică corecţia rapidă. De exemplu, această proprietate va fi semnalată dar nu modificată: java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.


Fişiere de proprietăţi

În plus faţă de semnalarea fişierelor Java, unealta va semnala fişierele de proprietăţi pentru proprietăţile specifice JBoss enumerate anterior. Pentru WebSphere Application Server tradiţional, înlăturaţi manual aceste proprietăţi din fişier sau modificaţi-le la valorile de proprietăţi de numire WebSphere.