Community
Participate
Working Groups
Currently a temporary class loader and Java reflection are used to parse the annotations and class metadata. This has a number of drawbacks, including all of the classes must be loaded on the temporary or main loader adding a performance overhead. Also Java reflection does not give access to annotation unspecified values (they are always defaulted). Some application servers or environments do not support the temporary class loader. There is also the risk of class overlap between the temporary and main class loaders, causing a class to be loaded on the main class loader before it is weaved. The metadata reflection usage will be changed to use ASM to gather the class and annotation metadata from the class byte codes See, http://wiki.eclipse.org/EclipseLink/DesignDocs/221546(2.0)#Bootstrap_Performance
Created attachment 135439 [details] patch
I'm very interested in this patch because it should make our weaving code more portable across OSGi implementations. However before we adopt it I'd like to ensure we either upgrade our OSGi weaving support to use it or have a strategy for selecting the temp loader approach until such time as we can complete migration. Is it possible to select between byte code analysis and the temp loader approach? The documentation (see URL) for this doesn't have any content on configuration. Is there more?
Created attachment 136341 [details] Updates to patch Patch to correct the merging and overriding behavior (as well as logging messages)
Created attachment 136372 [details] Patch to fix last failing test from extended model patch fixes the testProperty test from org.eclipse.persistence.testing.tests.jpa.xml.advanced.EntityMappingsAdvancedJUnitTestCase All extended tests now pass.
Resolved.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink