Community
Participate
Working Groups
Parser: - Make the entire API public. - Move the parser classes from org.eclipse.persistence.jpa.internal.jpql.parser to org.eclipse.persistence.jpa.jpql.parser - Change the visibility of the classes to be public - Change the visibility of the methods to be either public or protected - Create a JPQL grammar, split JPA 1.0 and JPA 2.0 into two different grammars - Add support to parse JPQL fragment (being able to parse only a portion of a JPQL query) - Add a default implementation of the SPI that accesses Java classes Extensibility support - Add extensibility support for the JPQL grammar (allows extending the grammar defined in the spec) - Move EclipseLink specific support to be an extension over the default grammar - Separate validation and content assist support into default (pure JPA) and EclipseLink State object model - Create a new state object model that allows editing (the parsed tree is read-only) - Allow the state model to be manually created - Create a builder that converts an existing JPQL query (String) into a state object model - Refactoring support: - Renaming an identification variable - Renaming an entity name - Renaming a path within a path expression - Renaming a class name (e.g. in a constructor expression) - Renaming an enum constant
Created attachment 205122 [details] Hermes 2.0.0 source code
Created attachment 205124 [details] Hermes 2.0.0 test source code
Created attachment 205125 [details] EL Hermes 2.0.0 source code
Created attachment 205126 [details] Hermes documentation
Two fo the projects require to have JPA 2.0 plug-in part of the Target Platform. To run the Hermes unit-tests, the launch configuration AllHermesParserTest requires a classpath variable: PERSISTENCE_LIB that points to JPA 2.0 jar.
Created attachment 205657 [details] Hermes 2.0.0 source code Refreshed the patch to make sure the revision number of some file is correct.
Created attachment 205658 [details] Hermes 2.0.0 test source code Refreshed the patch to make sure the revision number of some file is correct.
Created attachment 205660 [details] EL Hermes 2.0.0 source code Refreshed the patch to make sure the revision number of some file is correct.
Created attachment 206939 [details] EL Hermes 2.0.0 source code Contains half of the optimization work
Created attachment 206940 [details] Hermes 2.0.0 test source code
Created attachment 206941 [details] Hermes 2.0.0 source code
I've reviewed the patches from comment 10 and 11 in a limited fashion due to the size and scope of the changes. The core changes to make the parser public, extensible, and add the state model appear to have been achieved and the tests are all passing as expected.
Patches have been checked in.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink