Usar valores de propriedades OpenJPA em vez de valores de propriedades específicos do Kodo

O WebLogic usava o Kodo em vez do OpenJPA para sua implementação do provedor JPA 1.0. Esta regra converte valores de propriedade específicos do kodo para OpenJPA. Esta regra detecta os valores de propriedade específicos do kodo em um arquivo Java. O nome da propriedade e o valor da propriedade devem ser parâmetros literais de Sequência para um put . O nome da propriedade deve ser o primeiro parâmetro, a chave. E o valor da propriedade deve ser o segundo parâmetro. Esta regra apenas converte os valores de propriedade. Uma regra separada converte o nome da propriedade, se necessário.

Por exemplo, o seguinte código é sinalizado:
map.put("kodo.Log", "Remote=TRACE, SQL=TRACE");

map.put("kodo.Log", "SQL=TRACE");
A correção automatizada removerá o valor Remote=TRACE, pois ele não é um valor válido no site OpenJPA.

A tabela a seguir mostra os valores que podem ser convertidos:
Classe Description
kodo.Log
  • Remove os valores Configuration, Remote, Manage e Profile
  • Converte kodo.* em openjpa.*
kodo.ConnectionFactoryProperties
  • Os valores válidos são QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Remove todos os outros valores
kodo.ConnectionFactory2Properties
  • Os valores válidos são QueryTimeout, PrettyPrint, PrettyPrintLineLength.
  • Remove todos os outros valores
kodo.MetaDataFactory
  • Os valores válidos são jpa ou org.apache.openjpa.persistence.PersistenceMetaDataFactory.
  • Remove todos os outros valores e configura o valor como jpa
kodo.LockManager
  • Converte kodo.* em org.apache.openjpa.*
  • Aliases remain the same.
kodo.OrphanedKeyAction
  • Converte kodo.* em org.apache.openjpa.*
  • Aliases remain the same.
kodo.SavepointManager
  • Converte kodo.* em org.apache.openjpa.*
  • Aliases remain the same.
kodo.Sequence
  • Converte kodo.* em org.apache.openjpa.*
  • Aliases remain the same.
kodo.DataCache
  • Seleciona somente a primeira entrada de cache. Todas as outras entradas são descartadas.
  • Se a primeira entrada for configurada como tangosol, lru ou gemfire, o valor será configurado como 'true'.
  • Se a primeira entrada tiver valores, eles serão preservados. Por exemplo, true(CacheSize=100).
  • Se a primeira entrada for false, ela permanecerá false.
kodo.QueryCompilationCache
  • O valor kodo.util.CacheMap é convertido para org.apache.openjpa.util.CacheMap.
  • O valor java.util.HashMap é convertido para org.apache.openjpa.lib.util.ConcurrentHash.
  • Aliases remain the same.
kodo.jdbc.DBDictionary
  • Converte kodo.* em: org.apache.openjpa.*
  • Aliases remain the same.
kodo.jdbc.SchemaFactory
  • Converte kodo.* em: org.apache.openjpa.*
  • Aliases remain the same.
kodo.jdbc.MappingDefaults
  • O valor válido é default.
kodo.ee.ManagedRuntime
  • Converte kodo.* em: org.apache.openjpa.*
  • Aliases remain the same.

Nota: o WebSphere Traditional V8.5.5 e o Liberty Web Profile 6.0 usam o OpenJPA para sua implementação da JPA 2.0. A implementação da JPA 2.1 do WebSphere traditional V9.0 e do Java EE 7 do Liberty usa EclipseLink.