[ 
https://issues.apache.org/jira/browse/OPENJPA-910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Donald Woods updated OPENJPA-910:
---------------------------------

    Fix Version/s:     (was: 2.0.0)

> Allow multiple keys for the same property to be specified at different levels
> -----------------------------------------------------------------------------
>
>                 Key: OPENJPA-910
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-910
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>    Affects Versions: 2.0.0-M1
>            Reporter: Dianne Richards
>            Priority: Minor
>
> In OPENJPA-850, support was provided for some 2.0 spec properties. Some of 
> these properties are equivalent to current openjpa properties, resulting in 
> some properties supported by 2 different keys. As part of this enhancement, 
> an exception is thrown if the same property is specified more than once with 
> different keys. An issue has been raised related to this suggesting that one 
> key could be specified at one level (such as the persistence.xml) but another 
> key could be specified at another level (such as a system property), and that 
> we should allow this. This was discussed among several people, with the 
> resulting conclusion documented by Pinaki as follows:
> Rule 1: OpenJPA configurations can be specified at following levels (from 
> lowest to highest)
> I have changed Mike's order to reflect how the code (perhaps) now uses 
> precedence (changing such order may require hard tweaks)
> > 1. openjpa.xml (globals)
> > 5. java.lang.System.getProperties()  
> > 2. persistence.xml (<properties></properties>)
> > 3. A map passed in to the call to createEntityManagerFactory()
> > 4. A map passed in to getEntityManager() 
> Rule 2: Each property is identified by a key. A key must have one, but can 
> have multiple monikers. For example, 'ConnectionDriver' property has two 
> monikers 'openjpa.ConnectionDriverName' and 'javax.persistence.jdbc.driver'. 
> All monikers for a key are treated as interchangeable for all purpose other 
> than when a key appears in the returned list of EMF.getProperties() -- which 
> is always the moniker whose corresponding value is 'in effect' in the 
> configuration.
> Rule 3: If the same key is specified at the same level, a error message is 
> generated.
> Rule 4: If the same key is specified at different levels, the higher level 
> value overwrite the lower level value. 
> INFO/TRACE message is printed if the values are overwritten or attempted to 
> be overwritten respectively. 

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

Reply via email to