openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Ezzio <>
Subject Re: [jira] Commented: (OPENJPA-1610) Allow applications using OpenJPA 1.x to run with the JPA 2.0 jar on the classpath
Date Fri, 02 Apr 2010 21:40:35 GMT
Hi Michael,

It's a good question, but I don't have these diffs ready to hand.  The 
SVN tool (SmartSVN) that I use conveniently allows me to ignore 
whitespace in comparisons.

I should have consider the problem and submitted the changes with the 
EOL changes separated out.



Michael Dick (JIRA) wrote:
>     [
> Michael Dick commented on OPENJPA-1610:
> ---------------------------------------
> Is there a patch without all the whitespace changes? 
>> Allow applications using OpenJPA 1.x to run with the JPA 2.0 jar on the classpath
>> ---------------------------------------------------------------------------------
>>                 Key: OPENJPA-1610
>>                 URL:
>>             Project: OpenJPA
>>          Issue Type: Improvement
>>          Components: jpa
>>    Affects Versions: 1.1.1
>>            Reporter: David Ezzio
>>            Assignee: David Ezzio
>>             Fix For: 1.1.1
>> OpenJPA 1.x does not support JPA 2.0, but there are runtime environments
>> where applications using OpenJPA 1.x must run with the JPA 2.0 jar
>> present in the classpath.
>> Although JPA 2.0 is upwardly compatible with JPA 1.0, JPA 2.0 introduced
>> some methods to existing JPA interfaces that conflict with existing
>> signatures in OpenJPA interfaces.  These conflicts arise because
>> the OpenJPA interfaces extend the JPA interfaces that picked up the new 
>> methods.
>> To avoid the linkage errors that would result from no changes to
>> OpenJPA, when applications using the offending methods run in such an
>> environment, the two offending methods should be changed in the OpenJPA
>> interfaces.
>> Applications deployed in such environments should be recompiled to avoid
>> any possibility of using the old methods.
>> The offending methods are 
>>     public <T> T OpenJPAEntityManager.detach(T pc)
>>     public Properties OpenJPAEntityManagerFactory.getProperties()
>> The proposed fixes are designed to make recompilation and correction of
>> such applications as simple as possible. Such applications will compile
>> with either the JPA 2.0 or JPA 1.0 jar, but they should be compiled with
>> the JPA 1.0 jar to avoid mistakenly using interfaces or methods found
>> only in JPA 2.0. Any such coding mistakes will result in linkage errors
>> when the methods or interfaces are used at runtime.
>> The proposed fixes:
>>     public <T> T OpenJPAEntityManager.detachCopy(T pc)
>>     public Map<String, Object) OpenJPAEntityManagerFactory.getProperties()
>>     public Properties OpenJPAEntityManagerFactory.getPropertiesAsProperties()
>> The first two fixes follow the changes made in OpenJPA 2.x to address
>> these same conflicts.
>> The getPropertiesAsProperties method is provided as a convenience to
>> application developers who do not want to accept the different return
>> type of the redesigned getProperties method. However, the method
>> getPropertiesAsProperties is not currently found in the OpenJPA 2.x
>> interface.
>> It is estimated that a large proportion of OpenJPA 1.x enabled
>> applications are using the old detach method and that a small proportion
>> are using the old getProperties method.

View raw message