Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 341523

Summary: Optimize validation and content assist for Hermes parser
Product: z_Archived Reporter: Pascal Filion <pascal.filion>
Component: EclipselinkAssignee: Pascal Filion <pascal.filion>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: neil.hauge
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
The patch contains the changes related to optimization
none
Updated patch since the previous one was not created correctly
neil.hauge: iplog+
Updated patch since the previous one was not created correctly neil.hauge: iplog+

Description Pascal Filion CLA 2011-03-31 12:55:44 EDT
Build Identifier: 2.3.0

The content assist and validation are complete but no optimization has been done yet. In order to have a faster response time when validating and using content assist in an IDE, improvement should be done in that API.

Phase one of optimization should be related to caching information related to JPA artifacts, how path expressions are resolved.

Reproducible: Always
Comment 1 Pascal Filion CLA 2011-03-31 12:57:42 EDT
Created attachment 192303 [details]
The patch contains the changes related to optimization
Comment 2 Pascal Filion CLA 2011-03-31 14:30:09 EDT
The patch includes the following changes:
- The internal TypeResolver API was refactored (and renamed to Resolver too). A Resolver was constantly recreated during validation and content assist when the type or mapping for a path expression. Now a single instance exists for any resolver. "e.name" will be resolved once if it's used more than once in a query.
- The declaration of the query is now scanned only once. JPQLQueryContext now contains that information, which is shared accross validation and content assist. Prior to this change, the declaration was rescanned everytime it was needed.
- Some of the visitor classes are now cached, which means they can be reused until everything is disposed.
Comment 3 Neil Hauge CLA 2011-04-04 23:31:34 EDT
It appears there are some problems with the patch.  There are a few references to EntityTypeResolver after applying the patch, in addition to a few other compile errors.  The test project has some compile errors due to the classpath not containing all the necessary required projects.
Comment 4 Pascal Filion CLA 2011-04-05 14:02:22 EDT
Created attachment 192582 [details]
Updated patch since the previous one was not created correctly
Comment 5 Pascal Filion CLA 2011-04-05 14:05:32 EDT
Created attachment 192584 [details]
Updated patch since the previous one was not created correctly

The unit-tests were also converted to be a simple Java project but also a plug-in test, which will eventually be consumed.
Comment 6 Neil Hauge CLA 2011-04-08 15:11:12 EDT
Latest patches have been tested and committed.
Comment 7 Eclipse Webmaster CLA 2022-06-09 10:08:52 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink