JEE6IntegrationJPA
Relevant changes:
- new XML schema
Open issues:
- one more item to plan: update all existing wizards to take advantage of new JPA features wherever possible. This should include all wizards in Persistence category (New File wizards); actions like Use Entity Manager, Use Database (editor contextual actions); and Java Desktop Application project wizard for Database Application Shell.
Milestones:
- M1 - supports new XML schema for persistence.xml
- M2 - general improvements
Tasks:
- JPA.1, DONE (P1, Sergey, M1, 2D) use new schema for persistence.xml
- JPA.2, DONE (P1, Sergey, M1, 3-5D) update persistence.xml editor to support new schema
- JPA.3, (P2-3, Sergey, M2, 3-5D) update 'Entity Classes from Database' wizard to use Derived Identities if appropriate
- JPA.4, DONE (currently is supported for eclipselink 2.0 only) (P2, Sergey, M2, 3-5D), 2D) use newly defined constants for username, password, url, etc. in persistence unit
- Sessions Beans from Entity classes:
- JPA.5.1, DONE (P2, Sergey, M1, 1-3D) update for JEE6 (no local business interface by default)
- JPA.5.2, DONE (P3-2, Sergey, M1) consider moving (if easy) this wizard from persistence module to ejbcore module
- JPA.5.3, DONE (P2, Sergey, M1, 1-3D) in web project generate Session Bean instead of JPA Controller class
- JPA.6, DONE (P2, Sergey, M2) use Criteria API in generated code instead of SQL (session bean from entity classes, jpa controller classes)
- JPA.7, DONE (lib is added, toplink is alive yet) (P2, Sergey, M2) bundle EclipseLink instead of TopLink Essentials
Non-JEE6 Tasks:
- (P1) lower bug count
- (P2-3) TaskList integration - implement/enhance JPA specific editor hints and task list items
- (P2-3) refactoring - implement/enhance refactoring for JPA
- (P2) resolve inconsistency: there is contextual editor action Persistence->Use Entity Manager but there is also Insert Code item Use Database. Could they be unified?
- (P2) 'JPA Controller Classes from Entity Classes' wizard - could name be more self descriptive? provide better wizard description what it is actually good for (eg. generates controller (or DAO?) with methods for manipulation of your entities, eg. methods for lookup, removal, creation, etc.). Generated class should have one more constructor allowing creation of controller for a named persistence unit (eg. for unit testing).
- (P2) enable persistence unit wizard in EAR Project
- (P2) check for presence of persistence unit in associated EAR or on project's classpath in wizards like "Session Beans from Entity Classes" (see also issues 101556, 76797)
- (P3) differentiate unidirectional versus bidirectional relationships (issue 84105)
- (P3-2) add Java Entity classes regeneration after a DB change
- (P3-2) allow RESOURCE_LOCAL type of transactions (in persistence unit) be created even in container based projects; perhaps could be useful for unit testing; btw. detection whether project is run within container (based on presence of application server in project) does not work for Maven JEE projects where deployment server is optional
- (P3) generated NamedQueries should be created on separate lines otherwise you easilly end up with single line long more than 1000 characters
Other tasks currently not planned:
- orm.xml editor
- JPQL editor

