tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject svn commit: r1357783 - /openejb/trunk/openejb/examples/simple-cmp2/README.md
Date Thu, 05 Jul 2012 18:16:44 GMT
Author: dblevins
Date: Thu Jul  5 18:16:44 2012
New Revision: 1357783

URL: http://svn.apache.org/viewvc?rev=1357783&view=rev
Log:
Filled in description of CMP2 and how it works in OpenEJB

Modified:
    openejb/trunk/openejb/examples/simple-cmp2/README.md

Modified: openejb/trunk/openejb/examples/simple-cmp2/README.md
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/simple-cmp2/README.md?rev=1357783&r1=1357782&r2=1357783&view=diff
==============================================================================
--- openejb/trunk/openejb/examples/simple-cmp2/README.md (original)
+++ openejb/trunk/openejb/examples/simple-cmp2/README.md Thu Jul  5 18:16:44 2012
@@ -1,33 +1,48 @@
-Title: Simple Cmp2
+Title: EJB 2.1 CMP EntityBeans (CMP2)
 
-*Help us document this example! Click the blue pencil icon in the upper right to edit this
page.*
 
-## Movie
 
-    package org.superbiz.cmp2;
-    
-    /**
-     * @version $Revision$ $Date$
-     */
-    public interface Movie extends javax.ejb.EJBLocalObject {
-        java.lang.Integer getId();
-    
-        void setId(java.lang.Integer id);
-    
-        String getDirector();
-    
-        void setDirector(String director);
-    
-        String getTitle();
-    
-        void setTitle(String title);
-    
-        int getYear();
-    
-        void setYear(int year);
-    }
+OpenEJB, the EJB Container for TomEE and Geronimo,  does support all of EJB 1.1 to 3.1, including
CMP2.
 
-## MovieBean
+The CMP2 implementation is actually done by adapting the CMP2 bean into a JPA Entity dynamically
at deploy time.
+
+Appropriate subclasses, a JPA persistence.xml file and a mapping.xml file are generated at
deployment
+time for the CMP2 EntityBeans and all the Entities will be then run on OpenJPA.  This innovative
code
+has been used as the sole CMP2 implementation in Geronimo for its J2EE 1.4, JavaEE 5 and
JavaEE 6 certifications.
+
+The persistence.xml and mapping.xml files generated at deploy time can be saved to disk and
included
+in the application, allowing you to:
+
+ - gain finer control over persistence options
+ - slowly convert individual entities from CMP2 to JPA
+
+Let's see an example.
+
+# Movies application
+
+The following is a basic EJB 2.1 application consisting of one CMP2 Entity.  For those that
are reading this example
+out of curiosity and are not familiar with CMP2 or EJB 2.x, each CMP2 Entity is composed
of two parts
+
+ - **A Home interface** which has data access methods like "find", "create", and "remove".
 This is essentially
+  what people use `@Stateless` beans for today, but with difference that you do not need
to supply
+  the implementation of the interface -- the container will generate one for you.  This is
partly what inspired
+  the creation of the OpenEJB-specific [Dynamic DAO](../dynamic-dao-implementation/README.html)
feature.
+
+ - **An abstract EntityBean class** which declares the persistent "properties" of the entity
without actually
+declaring any fields.  It is the container's job to implement the actual methods and create
the appropriate
+fields.  OpenEJB will implement this bean as a JPA `@Entity` bean.
+
+As such a CMP2 EntityBean is really just the description of a persistent object and the description
of a 
+data-access object.  There is no actual code to write.
+
+The majority of work in CMP2 is done in the xml:
+
+ - **ejb-jar.xml** mapping information, which describes the persistent properties of the
entity and the queries
+ for all *Home* find, create and remove methods.  This information will be converted by OpenEJB
into
+ a JPA mapping.xml file.  All queries in the cmp2 part of the ejb-jar.xml are converted 
+ into named queries in JPA and generally everything is converted to its JPA equivalent. 
+
+## CMP2 EntityBean, MovieBean
 
     package org.superbiz.cmp2;
     
@@ -63,7 +78,7 @@ Title: Simple Cmp2
     
     }
 
-## Movies
+## CMP2 Home interface, Movies
 
     package org.superbiz.cmp2;
     
@@ -84,7 +99,7 @@ Title: Simple Cmp2
         Collection<Movie> findByDirector(String director) throws FinderException;
     }
 
-## ejb-jar.xml
+## CMP2 mapping in ejb-jar.xml
 
     <ejb-jar>
       <enterprise-beans>
@@ -230,4 +245,4 @@ Title: Simple Cmp2
     Results :
     
     Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-    
+    
\ No newline at end of file



Mime
View raw message