Utiliser des valeurs de propriété OpenJPA au lieu de valeurs de propriété spécifiques à Kodo

WebLogic utilisait Kodo à la place d'OpenJPA pour son implémentation de fournisseur JPA 1.0. Cette règle convertit les valeurs de propriété spécifiques à Kodo vers OpenJPA. Elle détecte les valeurs de propriété spécifiques à Kodo dans un fichier Java. Le nom de propriété et la valeur de propriété doivent être des paramètres de littéral String pour un put . Le nom de la propriété doit être le premier paramètre ; la clé et la valeur de la propriété doivent former le deuxième paramètre. Cette règle convertit uniquement les valeurs de propriété. Il existe une règle distincte pour convertir le nom de la propriété si nécessaire.

Par exemple, le code suivant sera marqué :
map.put("kodo.Log", "Remote=TRACE, SQL=TRACE");

map.put("kodo.Log", "SQL=TRACE");
Le correctif automatisé supprimera la valeur Remote=TRACE, car il ne s'agit pas d'une valeur valide sur OpenJPA.

Le tableau suivant répertorie les valeurs pouvant être converties :
Classe Description
kodo.Log
  • Retire les valeurs Configuration, Remote, Manage et Profile
  • Convertit kodo.* en openjpa.*
kodo.ConnectionFactoryProperties
  • Les valeurs admises sont QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Toutes les autres valeurs sont retirées.
kodo.ConnectionFactory2Properties
  • Les valeurs admises sont QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Toutes les autres valeurs sont retirées.
kodo.MetaDataFactory
  • Les valeurs admises sont jpa ou org.apache.openjpa.persistence.PersistenceMetaDataFactory.
  • Toutes les autres valeurs sont retirées et remplacées par jpa.
kodo.LockManager
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.OrphanedKeyAction
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.SavepointManager
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.Sequence
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.DataCache
  • Sélectionne uniquement la première entrée de mémoire cache. Les autres entrées sont ignorées.
  • Si la première entrée possède la valeur tangosol, lru ou gemfire, sa valeur devient 'true'.
  • Si la première entrée possède plusieurs valeurs, elles sont conservées. Par exemple, true(CacheSize=100).
  • Si la première entrée possède la valeur 'false', elle ne change pas.
kodo.QueryCompilationCache
  • La valeur kodo.util.CacheMap est convertie en org.apache.openjpa.util.CacheMap.
  • La valeur java.util.HashMap est convertie en org.apache.openjpa.util.ConcurrentHash.
  • Les alias restent identiques.
kodo.jdbc.DBDictionary
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.jdbc.SchemaFactory
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.
kodo.jdbc.MappingDefaults
  • La valeur admise est la valeur par défaut.
kodo.ee.ManagedRuntime
  • Convertit kodo.* en org.apache.openjpa.*
  • Les alias restent identiques.

Remarque : WebSphere Traditional version 8.5.5 et Liberty Web Profile 6.0 utilisent OpenJPA pour leur implémentation de JPA 2.0. L'implémentation de JPA 2.1 dans Java EE 7 pour WebSphere Traditional version 9.0 et Liberty utilise EclipseLink.