Jump to: navigation, search

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

(META-INF/MANIFEST.MF)
(Replacing page with 'The OSGi support provided by EclipseLink is deprecated and has been replace by the Gemini JPA project. See the Gemini documentation for examples.')
Line 1: Line 1:
== Comic Example using RCP ==
+
The OSGi support provided by EclipseLink is deprecated and has been replace by the Gemini JPA project.  See the [[Gemini/JPA/Documentation|Gemini documentation]] for examples.
 
+
== 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 [http://www.eclipse.org/eclipselink/downloads/index.php EclipseLink Downloads page] and P2 (see [[EclipseLink/Installing_EclipseLink_OSGi_in_PDE|Installing EclipseLink OSGi in PDE]]).  To have both EclipseLink and RCP bundles available in your target platform you can also add EclipseLink to the default target platform.
+
** '''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 [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/ EclipseLink examples SVN])
+
** '''org.eclipse.persistence.derby''' - Provides access to the Derby client driver, but does not contain it.  See the [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/org.eclipse.persistence.derby/ReadMe.txt ReadMe.txt] for configuration instructions.
+
* Example Bundles (available from [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/ 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.
+
 
+
* [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/org.eclipse.persistence.example.jpa.comics.model.annotated/src/org/eclipse/persistence/example/jpa/comics/model/annotated/Issue.java Issue.java (org.eclipse.persistence.example.jpa.comics.model.annotated)]
+
* [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/org.eclipse.persistence.example.jpa.comics.model.annotated/src/org/eclipse/persistence/example/jpa/comics/model/annotated/Publisher.java Publisher.java (org.eclipse.persistence.example.jpa.comics.model.annotated)]
+
* [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/org.eclipse.persistence.example.jpa.comics.model.annotated/src/org/eclipse/persistence/example/jpa/comics/model/annotated/Title.java Title.java (org.eclipse.persistence.example.jpa.comics.model.annotated)]
+
 
+
 
+
==== 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 [[EclipseLink/Examples/OSGi#Importing_Javax.Persistence_2.0| Importing Java.Persistence 2.0]] for more information on these values.
+
<pre>
+
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"
+
</pre>
+
 
+
=== 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 ...
+

Revision as of 07:53, 24 October 2012

The OSGi support provided by EclipseLink is deprecated and has been replace by the Gemini JPA project. See the Gemini documentation for examples.