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

Kevin Sutter commented on OPENJPA-952:
--------------------------------------

This sounds very promising!  Thanks for diving into this.  A couple of 
questions...

Can you comment on or further explain your third caveat above?  So, you are 
indicating that the "earliest OpenJPA code" is when an EM is created?  Why not 
any earlier?  For example, when creating the EMF?  We still may hit the window 
you are describing, but it might be a little narrower.

And, in the case of an Entity class loaded by the JVM before the agent is 
hooked up...  You mention that the enhancement won't take place.  Okay.  But, 
what happens then?  Would we fall back into the subclassing support?

Or, could we detect this condition and possibly do the class redefinition to 
replace the class that was already loaded?

Thanks,
Kevin

> Utilize Sun JDK's Attach API to dynamically load the OpenJPA enhancer agent
> ---------------------------------------------------------------------------
>
>                 Key: OPENJPA-952
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-952
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>    Affects Versions: 2.0.0
>         Environment: Sun 1.6 JDK. 
> Note: The Attach API is ONLY a part of the JDK, not the SDK.
>            Reporter: Rick Curtis
>
> When running in a JSE environment, OpenJPA could use the Attach API to 
> dynamically load the enhancer agent at runtime. Dynamically loading the 
> enhancer means that an OpenJPA developer doesn't need to configure a 
> -javaagent. Doing this would dramatically improve the out of box performance, 
> and also improve the ease of use. 
> This improvement has the following caveats:
> 1.) This API is ONLY a part of the 1.6 JDK.
> 2.) This API is supported by only the Sun JDK.
> 3.) If the agent is loaded from the earliest OpenJPA code, the agent will be 
> laoded when creating an EntityManager in the EntityManagerFactoryImpl. If an 
> Entity class is loaded by the JVM before the enhancer agent is loaded, that 
> class' byte code will not be enhanced. 
> Attach API - 
> http://java.sun.com/javase/6/docs/technotes/guides/attach/index.html

-- 
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