Использовать значения свойств OpenJPA вместо значений свойств Kodo

WebLogic использует Kodo вместо OpenJPA в реализации провайдера JPA 1.0. Это правило преобразует значения свойств kodo в значения OpenJPA. Данное правило находит значения свойств kodo в файле Java. Имя свойства и значение свойства должны быть литеральными параметрами String в put метод. Имя свойства должно находиться в первом параметре, ключе, а значение свойства - во втором параметре. Это правило преобразует только значения свойств. Имена свойств можно преобразовать, если это необходимо, с помощью отдельного правила.

Например, будет отмечен следующий фрагмент кода:
map.put("kodo.Log", "Remote=TRACE, SQL=TRACE");

map.put("kodo.Log", "SQL=TRACE");
Автоматическое исправление удалит значение Remote=TRACE, поскольку оно не является допустимым значением OpenJPA.

В следующей таблице перечислены те значения, которые можно преобразовать:
Класс Описание
kodo.Log
  • Удаляются значения Configuration, Remote, Manage и Profile
  • Выполняется преобразование kodo.* в openjpa.*
kodo.ConnectionFactoryProperties
  • Допустимы значения QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Все остальные значения удаляются
kodo.ConnectionFactory2Properties
  • Допустимы значения QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Все остальные значения удаляются
kodo.MetaDataFactory
  • Допустимы значения jpa и org.apache.openjpa.persistence.PersistenceMetaDataFactory.
  • Все остальные значения удаляются и задается значение jpa
kodo.LockManager
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.OrphanedKeyAction
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.SavepointManager
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.Sequence
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.DataCache
  • Выбирается первая запись кэша. Остальные записи аннулируются.
  • Если первая запись - это tangosol, lru или gemfire, то задается значение 'true'.
  • Если первая запись имеет значения, они сохраняются. Например, true(CacheSize=100).
  • Если первая запись равна false, сохраняется значение false.
kodo.QueryCompilationCache
  • Значение kodo.util.CacheMap преобразуется в org.apache.openjpa.util.CacheMap.
  • Значение java.util.HashMap преобразуется в org.apache.openjpa.lib.util.ConcurrentHash.
  • Псевдонимы остаются прежними.
kodo.jdbc.DBDictionary
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.jdbc.SchemaFactory
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.
kodo.jdbc.MappingDefaults
  • Допустимо значение default.
kodo.ee.ManagedRuntime
  • Выполняется преобразование kodo.* в org.apache.openjpa.*
  • Псевдонимы остаются прежними.

Примечание: в WebSphere traditional V8.5.5 и Liberty Web Profile 6.0 реализация JPA 2.0 использует OpenJPA. В WebSphere traditional V9.0 и в Liberty реализация JPA 2.1 Java EE 7 использует EclipseLink.