Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Examples/OSGi/LazyLoadingRCP"

m (META-INF/MANIFEST.MF)
m
Line 1: Line 1:
Under Construction
 
 
 
== Comic Example using RCP ==
 
== Comic Example using RCP ==
  

Revision as of 16:00, 17 June 2010

Comic Example using RCP

Software Required

This example illustrates the use of EclipseLink JPA in a simple RCP application. Running this example requires OSGi (Equinox) as well as the following bundles.

  • EclipseLink OSGi bundles (available from the EclipseLink Downloads page and P2 (see Installing EclipseLink OSGi in PDE).
    • org.eclipse.persistence.core - Core EclipseLink Bundle
    • org.eclipse.persistence.asm - EclipseLink bundling of ASM to enable byte-code weaving
    • org.eclipse.persistence.antlr - EclipseLink bundling of ANTLR used for JPQL parsing
    • javax.persistence - Java Persistence API 2.0 specification
    • org.eclipse.persistence.jpa - EclipseLink JPA Bundle
    • org.eclipse.persistence.jpa.osgi - EclipseLink JPA OSGi Bundle (required only with EclipseLink 2.1 and above)
  • Derby JDBC Driver (available from EclipseLink examples SVN)
    • org.eclipse.persistence.derby - Provides access to the Derby client driver, but does not contain it. See the ReadMe.txt for configuration instructions.
  • Example Bundles (available from EclipseLink examples SVN)
    • org.eclipse.persistence.example.jpa.comics.model.annotated
    • org.eclipse.persistence.example.jpa.comics.setup
    • org.eclipse.persistence.example.jpa.rcp.comics

Understanding the Example

The example is composed of 3 bundles

org.eclipse.persistence.example.jpa.comics.model.annotated Bundle

This bundle contains the domain classes with their JPA mappings specified through annotations.


META-INF/MANIFEST.MF

Note that the manifest imports the javax.persistence package with version "1.1.0" and attribute jpa="2.0" so as to be compliant with the OSGi Enterprise specification. See Importing Java.Persistence 2.0 for more information on these values.

Manifest-Version: 1.0.
Bundle-ManifestVersion: 2
Bundle-Name: Model Plug-in
Bundle-SymbolicName: org.eclipse.persistence.example.jpa.comics.model.annotated
Bundle-Version: 1.1.0
Export-Package: org.eclipse.persistence.example.jpa.comics.model.annotated
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: javax.persistence;version="1.1.0";jpa="2.0"

org.eclipse.persistence.example.jpa.comics.setup Bundle

This bundle is a utility that can create the database and populate it from a provided data set. Usage instructions are included in those for the RCP application (see below).

org.eclipse.persistence.example.jpa.rcp.comics Bundle

This bundle contains a simple RCP application using EclipseLink. RCP applications are started a little differently than regular OSGi applications so we don't rely on bundle start levels. In a typical EclipseLink OSGi application the javax.persistence and o.e.p.jpa bundles are started before client code is run so they can publish OSGi services the client will use. However in RCP this isn't the case and so we don't go through the JPA bootstrap API. Instead we directly instantiate an EclipseLink OSGi PersistenceProvider (see Model.getEntityManagerFactory()). The classloader that is provided to the persistence provider must be able to load the java.persistence.* classes, org.eclipse.persistence.jpa.* classes, and the persistence unit classes and artifacts. The classloader of the RCP client bundle works great for this example.

Running the RCP Example

Instructions for how to run the example are provided in the ReadMe.txt file at the root of the org.eclipse.persistence.example.jpa.rcp.comics bundle.

Running with Eclipse IDE

The example can easily be run within the Eclipse IDE ...

Back to the top