openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Linskey <plins...@gmail.com>
Subject Re: [VOTE] Turn off enhancement by subclassing as the default
Date Tue, 09 Dec 2008 15:55:08 GMT
> Excellent question.  To be honest, I didn't know that we ended up with
> different "subclassing" behavior when using a 1.5 JVM vs a 1.6 JVM.

In Sun-ish 1.6 VMs, we can automatically register a class transformer  
on the fly (see InstrumentationFactory). I don't remember all the  
subtleties of the configuration and the implications on what we can  
do, but there are definitely differences in the pathways, as we can  
directly mutate code blocks in 1.6 environments (but maybe we can't  
add fields and methods?).

> Has anybody spent any cycles on that approach?

I haven't investigated one way or the other. I believe that there's a  
table somewhere in the docs that spells out the differences between  
the various approaches.

-Patrick

On Dec 9, 2008, at 7:19 AM, Kevin Sutter wrote:

> Hi Patrick,
>
> On Tue, Dec 9, 2008 at 1:11 AM, Patrick Linskey <plinskey@gmail.com>  
> wrote:
>
>> What is the impact of your proposal on people who are using Sun-ish  
>> 1.6
>> VMs, which have on-the-fly class redefinition support?
>>
>> Put another way, to what extent have you considered the differences  
>> in
>> flakiness between the 1.5-friendly subclassing approach and the 1.6- 
>> needing
>> redefinition approach?
>>
>
> Excellent question.  To be honest, I didn't know that we ended up with
> different "subclassing" behavior when using a 1.5 JVM vs a 1.6 JVM.  I
> thought the reported problems were equally applied to both JVM  
> versions.  Do
> we know that the 1.6 redefinition capabilities avoid the reported  
> problems?
> Has anybody spent any cycles on that approach?
>
> Maybe something to think about is to turn off the subclassing  
> support for
> the 1.5 JVM and leave the class redefinition support on for the 1.6  
> JVM?  I
> really don't know enough about these alternate approaches to make  
> that kind
> of statement at this point.
>
> Other thoughts?
>
> Thanks,
> Kevin
>
>
>> -Patrick
>>
>> On Dec 4, 2008, at 4:25 PM, Kevin Sutter wrote:
>>
>> Hi,
>>> This is a tough decision, but one that I think we need to make.   
>>> If you
>>> have
>>> been following the dev mailing list, there have been several  
>>> discussions
>>> [1]
>>> and JIRA Issues [2] about the fallback enhancement by subclassing  
>>> that we
>>> put in place back in the 1.0.0 timeframe.  Although we succeeded  
>>> in making
>>> the initial out-of-box experience easier for the newbie OpenJPA  
>>> developer,
>>> we also masked the need for true enhancement for production  
>>> usage.  So,
>>> unless we deem that this subclassing enhancement is critical to  
>>> OpenJPA's
>>> acceptance and usage, I propose to turn this option off by  
>>> default.  The
>>> ability to do this subclass enhancement will still be available  
>>> via the
>>> openjpa.RuntimeUnenhancedClasses property, but the default will  
>>> now be
>>> either "warn" or "unsupported" instead of "supported".  I would  
>>> like to do
>>> this for trunk for sure and possibly the 1.3.x branch as well.   
>>> Please
>>> vote
>>> accordingly.  Thanks for your input.  Write-in comments are also  
>>> welcome.
>>>
>>> [ +1 | 0 | -1 ]  Turn off subclass enhancement in trunk
>>> [ +1 | 0 | -1 ]  Turn off subclass enhancement in 1.3.x
>>>
>>> I am not proposing to turn it off in the other branches since  
>>> those are
>>> not
>>> active development streams, but rather service streams.  We  
>>> shouldn't
>>> introduce a change like this into a customer's service stream.   
>>> That is,
>>> for
>>> a customer to get 1.0.4 with this option turned off would be a  
>>> surprise
>>> since they would only be expecting fixes.  Fine line in this case,  
>>> but you
>>> get the picture.
>>>
>>> Thanks,
>>> Kevin
>>>
>>> [1]
>>>
>>> http://n2.nabble.com/Re%3A-Foreign-key-field-doesn%27t-get-populated-in-descendant-class-in-Join-Inheritance-td1574111.html#a1574493
>>> [2]       http://issues.apache.org/jira/browse/OPENJPA-651,
>>> http://issues.apache.org/jira/browse/OPENJPA-650,
>>> https://issues.apache.org/jira/browse/OPENJPA-293
>>>
>>
>> --
>> Patrick Linskey
>> 202 669 5907
>>
>>

-- 
Patrick Linskey
202 669 5907


Mime
View raw message