You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Jeremy Bauer (JIRA)" <ji...@apache.org> on 2009/01/23 15:56:59 UTC

[jira] Commented: (OPENJPA-857) Detect and store JPA version

    [ https://issues.apache.org/jira/browse/OPENJPA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666554#action_12666554 ] 

Jeremy Bauer commented on OPENJPA-857:
--------------------------------------

Thoughts/suggestions provided by Pinaki:

OpenJPAConfiguration already has a notion of specification -- but it is merely a String.
Follow the trail of ProductDerivation.afterSpecificationSet(String spec) and OpenJPAConfiguration.setSpecification(String spec).
Currently Specification is set to "JPA", JDO" etc. 
We can consider 
a) introduce a internal Specification class with version info as some JDBC drivers do. 
b) overload OpenJPAConfiguration.setSpecification(String spec, int majorVersion, int minorVersion) 

Irrespective of the mechanics, the idea is to capture more data about which specification OpenJPA kernel is working with.
Detection of which specification is active in runtime controlled by appropriate ProductDerivation but it is hardcoded and does not capture specification version.

The work on schema upgrade for JPA 2.0 may lead to devising some mechanics on detecting specification version. If that is done satisfactorily and early enough (i.e. before configuration is set) during bootstrap, we can stick that version info with the Configuration. Then Compatibility and other stuff can set their defaults based on specification. Or annotation processing can warn on conflicting settings etc. 

Essentially, 
1. detect or accept user-supplied specification name & version. 
2. Plug it into OpenJPAConfiguration.
3. Set default values of Compatibility and other stuff based on Specification
4. Warn during annotation parsing if settings are conflicting etc. 



> Detect and store JPA version
> ----------------------------
>
>                 Key: OPENJPA-857
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-857
>             Project: OpenJPA
>          Issue Type: Sub-task
>          Components: jpa
>    Affects Versions: 2.0.0
>            Reporter: Jeremy Bauer
>
> Detection and storage of the JPA specification level will be necessary to help maintain backward compatibility with prior versions of OpenJPA.  This item is to design and implement a solution to deterministically detect the version requested by the application (likely based on application artifacts such as the persistence.xml) and store the information such that OpenJPA can use the information at runtime to help maintain backward compatibility.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.