Use OpenJPA equivalent APIs instead of Kodo APIs

WebLogic used Kodo instead of OpenJPA for its JPA 1.0 provider implementation. For the Kodo classes that have an OpenJPA equivalent, the automated fix will transform them to the corresponding OpenJPA class or package. The following table shows the Kodo classes that directly map to OpenJPA classes.

Kodo Class OpenJPA Class
kodo.util.ProxyManager org.apache.openjpa.util.ProxyManager
kodo.jdbc.meta.Joinable org.apache.openjpa.jdbc.meta.Joinable
kodo.persistence.jdbc.LockGroupVersionColumn org.apache.openjpa.persistence.jdbc.VersionColumn
kodo.persistence.jdbc.LockGroupVersionColumns org.apache.openjpa.persistence.jdbc.VersionColumns
kodo.persistence.jdbc.ElementColumn org.apache.openjpa.persistence.jdbc.ElementJoinColumn
kodo.persistence.jdbc.ElementColumns org.apache.openjpa.persistence.jdbc.ElementJoinColumns
kodo.persistence.jdbc.KeyColumn org.apache.openjpa.persistence.jdbc.KeyColumn
kodo.persistence.jdbc.KeyColumns org.apache.openjpa.persistence.jdbc.KeyColumns
kodo.persistence.jdbc.KeyJoinColumn org.apache.openjpa.persistence.jdbc.KeyJoinColumn
kodo.persistence.jdbc.KeyJoinColumns org.apache.openjpa.persistence.jdbc.KeyJoinColumns
kodo.persistence.jdbc.KeyEmbeddedMapping org.apache.openjpa.persistence.jdbc.KeyEmbeddedMapping
kodo.jdbc.meta.ClassStrategy org.apache.openjpa.jdbc.meta.ClassStrategy
kodo.jdbc.meta.strats.* org.apache.openjpa.jdbc.meta.strats.*
kodo.jdbc.meta.DiscriminatorStrategy org.apache.openjpa.jdbc.meta.DiscriminatorStrategy
kodo.jdbc.meta.VersionStrategy org.apache.openjpa.jdbc.meta.VersionStrategy
kodo.jdbc.meta.ValueHandler org.apache.openjpa.jdbc.meta.ValueHandler
kodo.jdbc.meta.FieldStrategy org.apache.openjpa.jdbc.meta.FieldStrategy
kodo.event.OrphanedKeyAction org.apache.openjpa.event.OrphanedKeyAction
kodo.kernel.BrokerImpl org.apache.openjpa.kernel.BrokerImpl
kodo.event.TransactionListener org.apache.openjpa.event.TransactionListener
kodo.kernel.StoreManager org.apache.openjpa.kernel.StoreManager
kodo.datacache.DataCacheImpl org.apache.openjpa.datacache.DataCacheImpl
kodo.datacache.AbstractDataCache org.apache.openjpa.datacache.AbstractDataCache
kodo.datacache.DataCache org.apache.openjpa.datacache.DataCache
kodo.event.RemoteCommitProvider org.apache.openjpa.event.RemoteCommitProvider
kodo.datacache.QueryCacheImpl org.apache.openjpa.datacache.QueryCacheImpl
kodo.datacache.AbstractQueryCache org.apache.openjpa.datacache.AbstractQueryCache
kodo.datacache.QueryCache org.apache.openjpa.datacache.QueryCache
kodo.event.AbstractRemoteCommitProvider org.apache.openjpa.event.AbstractRemoteCommitProvider
kodo.event.RemoteCommitListener org.apache.openjpa.event.RemoteCommitListener
kodo.jdbc.schema.DriverDataSource org.apache.openjpa.jdbc.schema.DriverDataSource

This rule also detects the use of the WebLogic-specific annotations:

The rule migrates the previous annotations to the following values, respectively:

Note: WebSphere traditional V8.5.5 and Liberty Web Profile 6.0 uses OpenJPA for its JPA 2.0 implementation. WebSphere traditional V9.0 and Liberty's Java EE 7 JPA 2.1 implementation uses EclipseLink.