| Summary: | Allow EclipseLink JPA to work with Gemini in OSGi | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Tom Ware <tom.ware> |
| Component: | Eclipselink | Assignee: | Nobody - feel free to take it <nobody> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P2 | CC: | lgalfaso, rick.sapir, shaun.smith |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | osgi | ||
| Bug Depends on: | |||
| Bug Blocks: | 294129 | ||
| Attachments: | |||
|
Description
Tom Ware
Make necessary changes to allow EclipseLink JPA to work in OSGi in a specification-defined way in cooperation with the Eclipse Gemini project. Gemini is the Reference Implementation for the OSGI Java EE integration specification. It uses EclipseLink to provide its JPA service. EclipseLink needs some modifications in order to work with the specification. 1. EclipseLink must import packages as javax.persistence 1.1. We will also look for the jpa=2.0 property 2. EclipseLink JPA bundle activator must be able to work both in gemini mode or in our non-specification based mode that was distributed in 2.0 Our bundle activator issue will be tackled by providing a fragment that will be used to alter the behavior. It must be installed in order to get our EclipseLink-specific behavior. The javax.persistence bundle we ship will be updated to export packages with the property jap=2.0. We will still export the packages as version 2.0.0.qualifier since any changes to this will cause us to have issues with getting old versions of this bundle. Created attachment 168570 [details]
Proposed changes
This patch includes changes listed above and additionally some updates to the manifests we use for our Eclipse projects to correct some versioning issues.
This bug updates the way our OSGi functionality works on our org.eclipse.persistence.jpa bundle to work with the Eclipse Gemini project Tested with Gemini tests and our OSGi demos Review will be through discussion with Shaun Smith based on checked in code. Added information to the 2.1 release notes *** Bug 288141 has been marked as a duplicate of this bug. *** *** Bug 239733 has been marked as a duplicate of this bug. *** Created attachment 170885 [details]
Changes to support Gemini JPA with Weaving
This patch addresses three issues related to supporting byte code weaving in Gemini: 1) Static initialization of EntityManagerFactoryProvider collections and use of Hashtable instead of HashMap to improve thread safety 2) Removal of dead temporary class loader code as ASM is now used for meta-data processing 3) Passing properties passed to createEntityManagerFactory through to JPAInitializer.registerTransformer(..) Created attachment 170936 [details]
Changes to support Gemini JPA with Weaving
Updated patch with overlooked unnecessary import removed.
Moving target milestone to 2.1.1, due because it is too late in the release cycle to include this change. Created attachment 173586 [details]
Changes to support Gemini JPA with Weaving
Created attachment 174089 [details]
Changes to support Gemini JPA with Weaving
New patch that leaves "mostly" dead temploader code in place.
Created attachment 174185 [details] Changes to support Gemini JPA with Weaving Minor patch to pass user provided properties down to the method that creates a transformer and removal of temploader code from Equinox byte code weaving support as it is unnecessary (Bug 294129) Patch reviewed by Andrei. Committed to 2.1.1 in revision: 7811 Committed to trunk in revision 7812 The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink |