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 (org.eclipse.persistence.example.jpa.rcp.comics Bundle)
m
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
Under Construction
+
The OSGi support provided by EclipseLink is deprecated and has been replaced by the Gemini JPA project.  See the [[Gemini/JPA/Documentation|Gemini documentation]] for examples.
 
+
== 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 [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]]).
+
** '''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 ====
+
<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.
+
 
+
=== 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 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 ...
+

Latest revision as of 13:46, 24 October 2012

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

Back to the top