tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jlmonte...@apache.org
Subject [08/12] tomee git commit: converting and fixing group of jpa examples
Date Wed, 02 Jan 2019 21:18:19 GMT
converting and fixing group of jpa examples


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/a68903e7
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/a68903e7
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/a68903e7

Branch: refs/heads/master
Commit: a68903e7af00d9615d0d0b828cc95064bafabe72
Parents: 36b7a1e
Author: ivanjunckes <ijunckes@tomitribe.com>
Authored: Wed Jan 2 12:49:41 2019 -0200
Committer: ivanjunckes <ijunckes@tomitribe.com>
Committed: Wed Jan 2 12:49:41 2019 -0200

----------------------------------------------------------------------
 examples/injection-of-entitymanager/README.adoc | 229 +++++++++++++++
 examples/injection-of-entitymanager/README.md   | 221 --------------
 examples/jpa-eclipselink/README.adoc            | 215 ++++++++++++++
 examples/jpa-eclipselink/README.md              | 211 --------------
 examples/jpa-enumerated/README.adoc             | 259 +++++++++++++++++
 examples/jpa-enumerated/README.md               | 252 ----------------
 examples/jpa-hibernate/README.adoc              | 213 ++++++++++++++
 examples/jpa-hibernate/README.md                | 209 --------------
 examples/multi-jpa-provider-testing/README.adoc | 287 +++++++++++++++++++
 examples/simple-remote-tomcatusers/README.adoc  | 210 +++++++-------
 10 files changed, 1308 insertions(+), 998 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/injection-of-entitymanager/README.adoc
----------------------------------------------------------------------
diff --git a/examples/injection-of-entitymanager/README.adoc b/examples/injection-of-entitymanager/README.adoc
new file mode 100644
index 0000000..821b1f5
--- /dev/null
+++ b/examples/injection-of-entitymanager/README.adoc
@@ -0,0 +1,229 @@
+= Injection Of Entitymanager
+:index-group: JPA
+:jbake-type: page
+:jbake-status: published
+
+This example shows use of `@PersistenceContext` to have an `EntityManager` with an
+`EXTENDED` persistence context injected into a `@Stateful bean`. A JPA
+`@Entity` bean is used with the `EntityManager` to create, persist and merge
+data to a database.
+
+== Creating the JPA Entity
+
+The entity itself is simply a pojo annotated with `@Entity`.  We create one called `Movie` which we can use to hold movie records.
+
+....
+package org.superbiz.injection.jpa;
+
+import javax.persistence.Entity;
+
+@Entity
+public class Movie {
+
+    @Id @GeneratedValue
+    private long id;
+
+    private String director;
+    private String title;
+    private int year;
+
+    public Movie() {
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public Movie(String director, String title, int year) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public void setDirector(String director) {
+        this.director = director;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+}
+....
+
+== Configure the EntityManager via a persistence.xml file
+
+The above `Movie` entity can be created, removed, updated or deleted via an `EntityManager` object.  The `EntityManager` itself is
+configured via a `META-INF/persistence.xml` file that is placed in the same jar as the `Movie` entity.
+
+....
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
+
+  <persistence-unit name="movie-unit">
+    <jta-data-source>movieDatabase</jta-data-source>
+    <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+    <class>org.superbiz.injection.jpa.Movie</class>
+
+    <properties>
+      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
+    </properties>
+  </persistence-unit>
+</persistence>
+....
+
+Notice that the `Movie` entity is listed via a `<class>` element.  This is not required, but can help when testing or when the
+`Movie` class is located in a different jar than the jar containing the `persistence.xml` file.
+
+== Injection via @PersistenceContext
+
+The `EntityManager` itself is created by the container using the information in the `persistence.xml`, so to use it at
+runtime, we simply need to request it be injected into one of our components.  We do this via `@PersistenceContext`
+
+The `@PersistenceContext` annotation can be used on any CDI bean, EJB, Servlet, Servlet Listener, Servlet Filter, or JSF ManagedBean.  If you don't use an EJB you will need to use a `UserTransaction` begin and commit transactions manually.  A transaction is required for any of the create, update or delete methods of the EntityManager to work.
+
+....
+package org.superbiz.injection.jpa;
+
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import javax.persistence.Query;
+import java.util.List;
+
+@Stateful
+public class Movies {
+
+    @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
+    private EntityManager entityManager;
+
+    public void addMovie(Movie movie) throws Exception {
+        entityManager.persist(movie);
+    }
+
+    public void deleteMovie(Movie movie) throws Exception {
+        entityManager.remove(movie);
+    }
+
+    public List<Movie> getMovies() throws Exception {
+        Query query = entityManager.createQuery("SELECT m from Movie as m");
+        return query.getResultList();
+    }
+}
+....
+
+This particular `EntityManager` is injected as an `EXTENDED` persistence context, which simply means that the `EntityManager`
+is created when the `@Stateful` bean is created and destroyed when the `@Stateful` bean is destroyed.  Simply put, the
+data in the `EntityManager` is cached for the lifetime of the `@Stateful` bean.
+
+The use of `EXTENDED` persistence contexts is *only* available to `@Stateful` beans.  See the link:../../jpa-concepts.html[JPA Concepts] page for an high level explanation of what a "persistence context" really is and how it is significant to JPA.
+
+== MoviesTest
+
+Testing JPA is quite easy, we can simply use the `EJBContainer` API to create a container in our test case.
+
+....
+package org.superbiz.injection.jpa;
+
+import junit.framework.TestCase;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.naming.Context;
+import java.util.List;
+import java.util.Properties;
+
+//START SNIPPET: code
+public class MoviesTest extends TestCase {
+
+    public void test() throws Exception {
+
+        final Properties p = new Properties();
+        p.put("movieDatabase", "new://Resource?type=DataSource");
+        p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+        p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+        final Context context = EJBContainer.createEJBContainer(p).getContext();
+
+        Movies movies = (Movies) context.lookup("java:global/injection-of-entitymanager/Movies");
+
+        movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
+        movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
+        movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
+
+        List<Movie> list = movies.getMovies();
+        assertEquals("List.size()", 3, list.size());
+
+        for (Movie movie : list) {
+            movies.deleteMovie(movie);
+        }
+
+        assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
+    }
+}
+....
+
+= Running
+
+When we run our test case we should see output similar to the following.
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.injection.jpa.MoviesTest
+Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/examples/injection-of-entitymanager
+INFO - openejb.base = /Users/dblevins/examples/injection-of-entitymanager
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
+INFO - Found EjbModule in classpath: /Users/dblevins/examples/injection-of-entitymanager/target/classes
+INFO - Beginning load: /Users/dblevins/examples/injection-of-entitymanager/target/classes
+INFO - Configuring enterprise application: /Users/dblevins/examples/injection-of-entitymanager
+INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
+INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
+INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.injection.jpa.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Configuring PersistenceUnit(name=movie-unit)
+INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
+INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
+INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
+INFO - Enterprise application "/Users/dblevins/examples/injection-of-entitymanager" loaded.
+INFO - Assembling app: /Users/dblevins/examples/injection-of-entitymanager
+INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 462ms
+INFO - Jndi(name="java:global/injection-of-entitymanager/Movies!org.superbiz.injection.jpa.Movies")
+INFO - Jndi(name="java:global/injection-of-entitymanager/Movies")
+INFO - Jndi(name="java:global/EjbModule1461341140/org.superbiz.injection.jpa.MoviesTest!org.superbiz.injection.jpa.MoviesTest")
+INFO - Jndi(name="java:global/EjbModule1461341140/org.superbiz.injection.jpa.MoviesTest")
+INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Created Ejb(deployment-id=org.superbiz.injection.jpa.MoviesTest, ejb-name=org.superbiz.injection.jpa.MoviesTest, container=Default Managed Container)
+INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Started Ejb(deployment-id=org.superbiz.injection.jpa.MoviesTest, ejb-name=org.superbiz.injection.jpa.MoviesTest, container=Default Managed Container)
+INFO - Deployed Application(path=/Users/dblevins/examples/injection-of-entitymanager)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.301 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/injection-of-entitymanager/README.md
----------------------------------------------------------------------
diff --git a/examples/injection-of-entitymanager/README.md b/examples/injection-of-entitymanager/README.md
deleted file mode 100644
index 3200b5d..0000000
--- a/examples/injection-of-entitymanager/README.md
+++ /dev/null
@@ -1,221 +0,0 @@
-index-group=EntityManagers
-type=page
-status=published
-title=Injection Of Entitymanager
-~~~~~~
-
-This example shows use of `@PersistenceContext` to have an `EntityManager` with an
-`EXTENDED` persistence context injected into a `@Stateful bean`. A JPA
-`@Entity` bean is used with the `EntityManager` to create, persist and merge
-data to a database.
-
-## Creating the JPA Entity
-
-The entity itself is simply a pojo annotated with `@Entity`.  We create one called `Movie` which we can use to hold movie records.
-
-    package org.superbiz.injection.jpa;
-
-    import javax.persistence.Entity;
-    
-    @Entity
-    public class Movie {
-
-        @Id @GeneratedValue
-        private long id;
-
-        private String director;
-        private String title;
-        private int year;
-
-        public Movie() {
-        }
-
-        public long getId() {
-            return id;
-        }
-
-        public void setId(long id) {
-            this.id = id;
-        }
-
-        public Movie(String director, String title, int year) {
-            this.director = director;
-            this.title = title;
-            this.year = year;
-        }
-
-        public String getDirector() {
-            return director;
-        }
-
-        public void setDirector(String director) {
-            this.director = director;
-        }
-
-        public String getTitle() {
-            return title;
-        }
-
-        public void setTitle(String title) {
-            this.title = title;
-        }
-
-        public int getYear() {
-            return year;
-        }
-
-        public void setYear(int year) {
-            this.year = year;
-        }
-    }
-
-## Configure the EntityManager via a persistence.xml file
-
-The above `Movie` entity can be created, removed, updated or deleted via an `EntityManager` object.  The `EntityManager` itself is
-configured via a `META-INF/persistence.xml` file that is placed in the same jar as the `Movie` entity.
-
-    <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
-
-      <persistence-unit name="movie-unit">
-        <jta-data-source>movieDatabase</jta-data-source>
-        <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
-        <class>org.superbiz.injection.jpa.Movie</class>
-
-        <properties>
-          <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
-        </properties>
-      </persistence-unit>
-    </persistence>
-
-Notice that the `Movie` entity is listed via a `<class>` element.  This is not required, but can help when testing or when the
-`Movie` class is located in a different jar than the jar containing the `persistence.xml` file.
-
-## Injection via @PersistenceContext
-
-The `EntityManager` itself is created by the container using the information in the `persistence.xml`, so to use it at
-runtime, we simply need to request it be injected into one of our components.  We do this via `@PersistenceContext`
-
-The `@PersistenceContext` annotation can be used on any CDI bean, EJB, Servlet, Servlet Listener, Servlet Filter, or JSF ManagedBean.  If you don't use an EJB you will need to use a `UserTransaction` begin and commit transactions manually.  A transaction is required for any of the create, update or delete methods of the EntityManager to work.
-
-    package org.superbiz.injection.jpa;
-
-    import javax.ejb.Stateful;
-    import javax.persistence.EntityManager;
-    import javax.persistence.PersistenceContext;
-    import javax.persistence.PersistenceContextType;
-    import javax.persistence.Query;
-    import java.util.List;
-    
-    @Stateful
-    public class Movies {
-    
-        @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
-        private EntityManager entityManager;
-    
-        public void addMovie(Movie movie) throws Exception {
-            entityManager.persist(movie);
-        }
-    
-        public void deleteMovie(Movie movie) throws Exception {
-            entityManager.remove(movie);
-        }
-    
-        public List<Movie> getMovies() throws Exception {
-            Query query = entityManager.createQuery("SELECT m from Movie as m");
-            return query.getResultList();
-        }
-    }
-
-This particular `EntityManager` is injected as an `EXTENDED` persistence context, which simply means that the `EntityManager`
-is created when the `@Stateful` bean is created and destroyed when the `@Stateful` bean is destroyed.  Simply put, the
-data in the `EntityManager` is cached for the lifetime of the `@Stateful` bean.
-
-The use of `EXTENDED` persistence contexts is **only** available to `@Stateful` beans.  See the [JPA Concepts](../../jpa-concepts.html) page for an high level explanation of what a "persistence context" really is and how it is significant to JPA.
-
-## MoviesTest
-
-Testing JPA is quite easy, we can simply use the `EJBContainer` API to create a container in our test case.
-
-    package org.superbiz.injection.jpa;
-    
-    import junit.framework.TestCase;
-    
-    import javax.ejb.embeddable.EJBContainer;
-    import javax.naming.Context;
-    import java.util.List;
-    import java.util.Properties;
-    
-    //START SNIPPET: code
-    public class MoviesTest extends TestCase {
-    
-        public void test() throws Exception {
-    
-            final Properties p = new Properties();
-            p.put("movieDatabase", "new://Resource?type=DataSource");
-            p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
-            p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
-    
-            final Context context = EJBContainer.createEJBContainer(p).getContext();
-    
-            Movies movies = (Movies) context.lookup("java:global/injection-of-entitymanager/Movies");
-    
-            movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
-            movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
-            movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
-    
-            List<Movie> list = movies.getMovies();
-            assertEquals("List.size()", 3, list.size());
-    
-            for (Movie movie : list) {
-                movies.deleteMovie(movie);
-            }
-    
-            assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
-        }
-    }
-
-# Running
-
-When we run our test case we should see output similar to the following.
-    
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.injection.jpa.MoviesTest
-    Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
-    http://tomee.apache.org/
-    INFO - openejb.home = /Users/dblevins/examples/injection-of-entitymanager
-    INFO - openejb.base = /Users/dblevins/examples/injection-of-entitymanager
-    INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
-    INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
-    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
-    INFO - Found EjbModule in classpath: /Users/dblevins/examples/injection-of-entitymanager/target/classes
-    INFO - Beginning load: /Users/dblevins/examples/injection-of-entitymanager/target/classes
-    INFO - Configuring enterprise application: /Users/dblevins/examples/injection-of-entitymanager
-    INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
-    INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
-    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    INFO - Auto-creating a container for bean org.superbiz.injection.jpa.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
-    INFO - Configuring PersistenceUnit(name=movie-unit)
-    INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
-    INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
-    INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
-    INFO - Enterprise application "/Users/dblevins/examples/injection-of-entitymanager" loaded.
-    INFO - Assembling app: /Users/dblevins/examples/injection-of-entitymanager
-    INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 462ms
-    INFO - Jndi(name="java:global/injection-of-entitymanager/Movies!org.superbiz.injection.jpa.Movies")
-    INFO - Jndi(name="java:global/injection-of-entitymanager/Movies")
-    INFO - Jndi(name="java:global/EjbModule1461341140/org.superbiz.injection.jpa.MoviesTest!org.superbiz.injection.jpa.MoviesTest")
-    INFO - Jndi(name="java:global/EjbModule1461341140/org.superbiz.injection.jpa.MoviesTest")
-    INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Created Ejb(deployment-id=org.superbiz.injection.jpa.MoviesTest, ejb-name=org.superbiz.injection.jpa.MoviesTest, container=Default Managed Container)
-    INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Started Ejb(deployment-id=org.superbiz.injection.jpa.MoviesTest, ejb-name=org.superbiz.injection.jpa.MoviesTest, container=Default Managed Container)
-    INFO - Deployed Application(path=/Users/dblevins/examples/injection-of-entitymanager)
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.301 sec
-    
-    Results :
-    
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-    

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-eclipselink/README.adoc
----------------------------------------------------------------------
diff --git a/examples/jpa-eclipselink/README.adoc b/examples/jpa-eclipselink/README.adoc
new file mode 100644
index 0000000..0c628fc
--- /dev/null
+++ b/examples/jpa-eclipselink/README.adoc
@@ -0,0 +1,215 @@
+= JPA Eclipselink
+:index-group: JPA
+:jbake-type: page
+:jbake-status: published
+
+This example shows how to configure `persistence.xml` to work with Eclipselink. It uses an `@Entity` class and a `@Stateful` bean to add and delete entities from a database.
+
+== Creating the JPA Entity
+
+The entity itself is simply a pojo annotated with `@Entity`.  We create one pojo called `Movie` which we can use to hold movie records.
+
+....
+package org.superbiz.eclipselink;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Movie {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private long id;
+
+    private String director;
+    private String title;
+    private int year;
+
+    public Movie() {
+    }
+
+    public Movie(String director, String title, int year) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public void setDirector(String director) {
+        this.director = director;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+
+}
+....
+
+== Database Operations
+
+This is the bean responsible for database operations; it allows us to persist or delete entities.
+For more information we recommend you to see http://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html[injection-of-entitymanager]
+
+....
+package org.superbiz.eclipselink;
+
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import javax.persistence.Query;
+import java.util.List;
+
+@Stateful
+public class Movies {
+
+    @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
+    private EntityManager entityManager;
+
+    public void addMovie(Movie movie) throws Exception {
+        entityManager.persist(movie);
+    }
+
+    public void deleteMovie(Movie movie) throws Exception {
+        entityManager.remove(movie);
+    }
+
+    public List<Movie> getMovies() throws Exception {
+        Query query = entityManager.createQuery("SELECT m from Movie as m");
+        return query.getResultList();
+    }
+}
+....
+
+== Persistence.xml with EclipseLink configuration
+
+This operation is too easy, just set the `provider` to `org.eclipse.persistence.jpa.PersistenceProvider` and add additional properties to the persistence unit.
+The example has followed a strategy that allows the creation of tables in a HSQL database.
+For a complete list of persistence unit properties see http://www.eclipse.org/eclipselink/api/2.4/org/eclipse/persistence/config/PersistenceUnitProperties.html[here]
+
+ <persistence version="1.0"
+              xmlns="http://java.sun.com/xml/ns/persistence"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+   <persistence-unit name="movie-unit">
+     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+     <jta-data-source>movieDatabase</jta-data-source>
+     <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+     <properties>
+       <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.HSQLPlatform"/>
+       <property name="eclipselink.ddl-generation" value="create-tables"/>
+       <property name="eclipselink.ddl-generation.output-mode" value="database"/>
+     </properties>
+   </persistence-unit>
+ </persistence>
+
+== MoviesTest
+
+Testing JPA is quite easy, we can simply use the `EJBContainer` API to create a container in our test case.
+
+....
+package org.superbiz.eclipselink;
+
+import junit.framework.TestCase;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.naming.Context;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @version $Revision: 607077 $ $Date: 2007-12-27 06:55:23 -0800 (Thu, 27 Dec 2007) $
+ */
+public class MoviesTest extends TestCase {
+
+    public void test() throws Exception {
+        Properties p = new Properties();
+        p.put("movieDatabase", "new://Resource?type=DataSource");
+        p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+        p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+        final Context context = EJBContainer.createEJBContainer(p).getContext();
+
+        Movies movies = (Movies) context.lookup("java:global/jpa-eclipselink/Movies");
+
+        movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
+        movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
+        movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
+
+        List<Movie> list = movies.getMovies();
+        assertEquals("List.size()", 3, list.size());
+
+        for (Movie movie : list) {
+            movies.deleteMovie(movie);
+        }
+
+        assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
+    }
+}
+....
+
+= Running
+
+When we run our test case we should see output similar to the following.
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.eclipselink.MoviesTest
+Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/examples/jpa-eclipselink
+INFO - openejb.base = /Users/dblevins/examples/jpa-eclipselink
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
+INFO - Found EjbModule in classpath: /Users/dblevins/examples/jpa-eclipselink/target/classes
+INFO - Beginning load: /Users/dblevins/examples/jpa-eclipselink/target/classes
+INFO - Configuring enterprise application: /Users/dblevins/examples/jpa-eclipselink
+INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
+INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
+INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.eclipselink.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Configuring PersistenceUnit(name=movie-unit, provider=org.eclipse.persistence.jpa.PersistenceProvider)
+INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
+INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
+INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
+INFO - Enterprise application "/Users/dblevins/examples/jpa-eclipselink" loaded.
+INFO - Assembling app: /Users/dblevins/examples/jpa-eclipselink
+INFO - PersistenceUnit(name=movie-unit, provider=org.eclipse.persistence.jpa.PersistenceProvider) - provider time 511ms
+INFO - Jndi(name="java:global/jpa-eclipselink/Movies!org.superbiz.eclipselink.Movies")
+INFO - Jndi(name="java:global/jpa-eclipselink/Movies")
+INFO - Jndi(name="java:global/EjbModule225280863/org.superbiz.eclipselink.MoviesTest!org.superbiz.eclipselink.MoviesTest")
+INFO - Jndi(name="java:global/EjbModule225280863/org.superbiz.eclipselink.MoviesTest")
+INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Created Ejb(deployment-id=org.superbiz.eclipselink.MoviesTest, ejb-name=org.superbiz.eclipselink.MoviesTest, container=Default Managed Container)
+INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Started Ejb(deployment-id=org.superbiz.eclipselink.MoviesTest, ejb-name=org.superbiz.eclipselink.MoviesTest, container=Default Managed Container)
+INFO - Deployed Application(path=/Users/dblevins/examples/jpa-eclipselink)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.188 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-eclipselink/README.md
----------------------------------------------------------------------
diff --git a/examples/jpa-eclipselink/README.md b/examples/jpa-eclipselink/README.md
deleted file mode 100644
index 1023c9b..0000000
--- a/examples/jpa-eclipselink/README.md
+++ /dev/null
@@ -1,211 +0,0 @@
-index-group=EntityManagers
-type=page
-status=published
-title=JPA Eclipselink
-~~~~~~
-
-This example shows how to configure `persistence.xml` to work with Eclipselink. It uses an `@Entity` class and a `@Stateful` bean to add and delete entities from a database.
-
-## Creating the JPA Entity
-
-The entity itself is simply a pojo annotated with `@Entity`.  We create one pojo called `Movie` which we can use to hold movie records.
-
-    package org.superbiz.eclipselink;
-    
-    import javax.persistence.Entity;
-    import javax.persistence.GeneratedValue;
-    import javax.persistence.GenerationType;
-    import javax.persistence.Id;
-    
-    @Entity
-    public class Movie {
-    
-        @Id
-        @GeneratedValue(strategy = GenerationType.AUTO)
-        private long id;
-    
-        private String director;
-        private String title;
-        private int year;
-    
-        public Movie() {
-        }
-    
-        public Movie(String director, String title, int year) {
-            this.director = director;
-            this.title = title;
-            this.year = year;
-        }
-    
-        public String getDirector() {
-            return director;
-        }
-    
-        public void setDirector(String director) {
-            this.director = director;
-        }
-    
-        public String getTitle() {
-            return title;
-        }
-    
-        public void setTitle(String title) {
-            this.title = title;
-        }
-    
-        public int getYear() {
-            return year;
-        }
-    
-        public void setYear(int year) {
-            this.year = year;
-        }
-    
-    }
-
-## Database Operations
-
-This is the bean responsible for database operations; it allows us to persist or delete entities.
-For more information we recommend you to see [injection-of-entitymanager](http://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html)
-
-
-    package org.superbiz.eclipselink;
-    
-    import javax.ejb.Stateful;
-    import javax.persistence.EntityManager;
-    import javax.persistence.PersistenceContext;
-    import javax.persistence.PersistenceContextType;
-    import javax.persistence.Query;
-    import java.util.List;
-    
-    @Stateful
-    public class Movies {
-    
-        @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
-        private EntityManager entityManager;
-    
-        public void addMovie(Movie movie) throws Exception {
-            entityManager.persist(movie);
-        }
-    
-        public void deleteMovie(Movie movie) throws Exception {
-            entityManager.remove(movie);
-        }
-    
-        public List<Movie> getMovies() throws Exception {
-            Query query = entityManager.createQuery("SELECT m from Movie as m");
-            return query.getResultList();
-        }
-    }
-
-## Persistence.xml with EclipseLink configuration
-
-This operation is too easy, just set the `provider` to `org.eclipse.persistence.jpa.PersistenceProvider` and add additional properties to the persistence unit. 
-The example has followed a strategy that allows the creation of tables in a HSQL database.
-For a complete list of persistence unit properties see [here](http://www.eclipse.org/eclipselink/api/2.4/org/eclipse/persistence/config/PersistenceUnitProperties.html)
-
-    <persistence version="1.0"
-                 xmlns="http://java.sun.com/xml/ns/persistence"
-                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
-      <persistence-unit name="movie-unit">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-        <jta-data-source>movieDatabase</jta-data-source>
-        <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
-        <properties>
-          <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.HSQLPlatform"/>
-          <property name="eclipselink.ddl-generation" value="create-tables"/>
-          <property name="eclipselink.ddl-generation.output-mode" value="database"/>
-        </properties>
-      </persistence-unit>
-    </persistence>
-    
-
-## MoviesTest
-
-Testing JPA is quite easy, we can simply use the `EJBContainer` API to create a container in our test case.
-
-    package org.superbiz.eclipselink;
-    
-    import junit.framework.TestCase;
-    
-    import javax.ejb.embeddable.EJBContainer;
-    import javax.naming.Context;
-    import java.util.List;
-    import java.util.Properties;
-    
-    /**
-     * @version $Revision: 607077 $ $Date: 2007-12-27 06:55:23 -0800 (Thu, 27 Dec 2007) $
-     */
-    public class MoviesTest extends TestCase {
-    
-        public void test() throws Exception {
-            Properties p = new Properties();
-            p.put("movieDatabase", "new://Resource?type=DataSource");
-            p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
-            p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
-    
-            final Context context = EJBContainer.createEJBContainer(p).getContext();
-    
-            Movies movies = (Movies) context.lookup("java:global/jpa-eclipselink/Movies");
-    
-            movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
-            movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
-            movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
-    
-            List<Movie> list = movies.getMovies();
-            assertEquals("List.size()", 3, list.size());
-    
-            for (Movie movie : list) {
-                movies.deleteMovie(movie);
-            }
-    
-            assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
-        }
-    }
-
-# Running
-
-When we run our test case we should see output similar to the following.    
-
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.eclipselink.MoviesTest
-    Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
-    http://tomee.apache.org/
-    INFO - openejb.home = /Users/dblevins/examples/jpa-eclipselink
-    INFO - openejb.base = /Users/dblevins/examples/jpa-eclipselink
-    INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
-    INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
-    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
-    INFO - Found EjbModule in classpath: /Users/dblevins/examples/jpa-eclipselink/target/classes
-    INFO - Beginning load: /Users/dblevins/examples/jpa-eclipselink/target/classes
-    INFO - Configuring enterprise application: /Users/dblevins/examples/jpa-eclipselink
-    INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
-    INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
-    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    INFO - Auto-creating a container for bean org.superbiz.eclipselink.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
-    INFO - Configuring PersistenceUnit(name=movie-unit, provider=org.eclipse.persistence.jpa.PersistenceProvider)
-    INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
-    INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
-    INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
-    INFO - Enterprise application "/Users/dblevins/examples/jpa-eclipselink" loaded.
-    INFO - Assembling app: /Users/dblevins/examples/jpa-eclipselink
-    INFO - PersistenceUnit(name=movie-unit, provider=org.eclipse.persistence.jpa.PersistenceProvider) - provider time 511ms
-    INFO - Jndi(name="java:global/jpa-eclipselink/Movies!org.superbiz.eclipselink.Movies")
-    INFO - Jndi(name="java:global/jpa-eclipselink/Movies")
-    INFO - Jndi(name="java:global/EjbModule225280863/org.superbiz.eclipselink.MoviesTest!org.superbiz.eclipselink.MoviesTest")
-    INFO - Jndi(name="java:global/EjbModule225280863/org.superbiz.eclipselink.MoviesTest")
-    INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Created Ejb(deployment-id=org.superbiz.eclipselink.MoviesTest, ejb-name=org.superbiz.eclipselink.MoviesTest, container=Default Managed Container)
-    INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Started Ejb(deployment-id=org.superbiz.eclipselink.MoviesTest, ejb-name=org.superbiz.eclipselink.MoviesTest, container=Default Managed Container)
-    INFO - Deployed Application(path=/Users/dblevins/examples/jpa-eclipselink)
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.188 sec
-    
-    Results :
-    
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-    

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-enumerated/README.adoc
----------------------------------------------------------------------
diff --git a/examples/jpa-enumerated/README.adoc b/examples/jpa-enumerated/README.adoc
new file mode 100644
index 0000000..c446204
--- /dev/null
+++ b/examples/jpa-enumerated/README.adoc
@@ -0,0 +1,259 @@
+= JPA and Enums via @Enumerated
+:index-group: JPA
+:jbake-type: page
+:jbake-status: published
+
+It can sometimes be desirable to have a Java `enum` type to represent a particular column in a database. JPA supports converting database data to and from Java `enum` types via the `@javax.persistence.Enumerated` annotation.
+
+This example will show basic `@Enumerated` usage in a field of an `@Entity` as well as ``enum``s as the parameter of a `Query`.  We'll also see that the actual database representation can be effectively `String` or `int`.
+
+== Enum
+
+For our example we will leverage the familiar `Movie` entity and add a new field to represent the MPAA.org rating of the movie.  This is defined via a simple `enum` that requires no JPA specific annotations.
+
+ public enum Rating {
+     UNRATED,
+     G,
+     PG,
+     PG13,
+     R,
+     NC17
+ }
+
+== @Enumerated
+
+In our `Movie` entity, we add a `rating` field of the enum type `Rating` and annotate it with `@Enumerated(EnumType.STRING)` to declare that its value should be converted from what is effectively a `String` in the database to the `Rating` type.
+
+....
+@Entity
+public class Movie {
+
+    @Id
+    @GeneratedValue
+    private int id;
+    private String director;
+    private String title;
+    private int year;
+
+    @Enumerated(EnumType.STRING)
+    private Rating rating;
+
+    public Movie() {
+    }
+
+    public Movie(String director, String title, int year, Rating rating) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+        this.rating = rating;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public void setDirector(String director) {
+        this.director = director;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+
+    public Rating getRating() {
+        return rating;
+    }
+
+    public void setRating(Rating rating) {
+        this.rating = rating;
+    }
+}
+....
+
+The above is enough and we are effectively done.  For the sake of completeness we'll show a sample `Query`
+
+== Enum in JPQL Query
+
+Note the `findByRating` method which creates a `Query` with a `rating` named parameter.  The key thing to notice is that the `rating` enum instance itself is passed into the
+ `query.setParameter` method, *not* `rating.name()` or `rating.ordinal()`.
+
+Regardless if you use `EnumType.STRING` or `EnumType.ORDINAL`, you still always pass the enum itself in calls to `query.setParameter`.
+
+....
+@Stateful
+public class Movies {
+
+    @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
+    private EntityManager entityManager;
+
+    public void addMovie(Movie movie) {
+        entityManager.persist(movie);
+    }
+
+    public void deleteMovie(Movie movie) {
+        entityManager.remove(movie);
+    }
+
+    public List<Movie> findByRating(Rating rating) {
+        final Query query = entityManager.createQuery("SELECT m FROM Movie as m WHERE m.rating = :rating");
+        query.setParameter("rating", rating);
+        return query.getResultList();
+    }
+
+    public List<Movie> getMovies() throws Exception {
+        Query query = entityManager.createQuery("SELECT m from Movie as m");
+        return query.getResultList();
+    }
+
+}
+....
+
+== EnumType.STRING vs EnumType.ORDINAL
+
+It is a matter of style how you would like your `enum` data represented in the database.  Either `name()` or `ordinal()` are supported:
+
+* `@Enumerated(EnumType.STRING) Rating rating` the value of `rating.name()` is written and read from the corresponding database column; e.g. `G`, `PG`, `PG13`
+* `@Enumerated(EnumType.ORDINAL) Rating rating` the value of `rating.ordinal()` is written and read from the corresponding database column; e.g. `0`, `1`, `2`
+
+The default is `EnumType.ORDINAL`
+
+There are advantages and disadvantages to each.
+
+=== Disadvantage of EnumType.ORDINAL
+
+A disadvantage of `EnumType.ORDINAL` is the effect of time and the desire to keep `enums` in a logical order.  With `EnumType.ORDINAL` any new enum elements must be added to the
+*end* of the list or you will accidentally change the meaning of all your records.
+
+Let's use our `Rating` enum and see how it would have had to evolve over time to keep up with changes in the MPAA.org ratings system.
+
+*1980*
+
+ public enum Rating {
+     G,
+     PG,
+     R,
+     UNRATED
+ }
+
+*1984* PG-13 is added
+
+ public enum Rating {
+     G,
+     PG,
+     R,
+     UNRATED,
+     PG13
+ }
+
+*1990* NC-17 is added
+
+ public enum Rating {
+     G,
+     PG,
+     R,
+     UNRATED,
+     PG13,
+     NC17
+ }
+
+If `EnumType.STRING` was used, then the enum could be reordered at anytime and would instead look as we have defined it originally with ratings starting at `G` and increasing in severity to `NC17` and eventually `UNRATED`.  With `EnumType.ORDINAL` the logical ordering would not have withstood the test of time as new values were added.
+
+If the order of the enum values is significant to your code, avoid `EnumType.ORDINAL`
+
+== Unit Testing the JPA @Enumerated
+
+....
+public class MoviesTest extends TestCase {
+
+    public void test() throws Exception {
+
+        final Properties p = new Properties();
+        p.put("movieDatabase", "new://Resource?type=DataSource");
+        p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+        p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+        EJBContainer container = EJBContainer.createEJBContainer(p);
+        final Context context = container.getContext();
+
+        final Movies movies = (Movies) context.lookup("java:global/jpa-scratch/Movies");
+
+        movies.addMovie(new Movie("James Frawley", "The Muppet Movie", 1979, Rating.G));
+        movies.addMovie(new Movie("Jim Henson", "The Great Muppet Caper", 1981, Rating.G));
+        movies.addMovie(new Movie("Frank Oz", "The Muppets Take Manhattan", 1984, Rating.G));
+        movies.addMovie(new Movie("James Bobin", "The Muppets", 2011, Rating.PG));
+
+        assertEquals("List.size()", 4, movies.getMovies().size());
+
+        assertEquals("List.size()", 3, movies.findByRating(Rating.G).size());
+
+        assertEquals("List.size()", 1, movies.findByRating(Rating.PG).size());
+
+        assertEquals("List.size()", 0, movies.findByRating(Rating.R).size());
+
+        container.close();
+    }
+}
+....
+
+= Running
+
+To run the example via maven:
+
+ cd jpa-enumerated
+ mvn clean install
+
+Which will generate output similar to the following:
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.jpa.enums.MoviesTest
+Apache OpenEJB 4.0.0-beta-2    build: 20120115-08:26
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/openejb/examples/jpa-enumerated
+INFO - openejb.base = /Users/dblevins/openejb/examples/jpa-enumerated
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
+INFO - Found EjbModule in classpath: /Users/dblevins/openejb/examples/jpa-enumerated/target/classes
+INFO - Beginning load: /Users/dblevins/openejb/examples/jpa-enumerated/target/classes
+INFO - Configuring enterprise application: /Users/dblevins/openejb/examples/jpa-enumerated
+INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
+INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
+INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.jpa.enums.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Configuring PersistenceUnit(name=movie-unit)
+INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
+INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
+INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
+INFO - Enterprise application "/Users/dblevins/openejb/examples/jpa-enumerated" loaded.
+INFO - Assembling app: /Users/dblevins/openejb/examples/jpa-enumerated
+INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 406ms
+INFO - Jndi(name="java:global/jpa-enumerated/Movies!org.superbiz.jpa.enums.Movies")
+INFO - Jndi(name="java:global/jpa-enumerated/Movies")
+INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Deployed Application(path=/Users/dblevins/openejb/examples/jpa-enumerated)
+INFO - Undeploying app: /Users/dblevins/openejb/examples/jpa-enumerated
+INFO - Closing DataSource: movieDatabase
+INFO - Closing DataSource: movieDatabaseNonJta
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.831 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-enumerated/README.md
----------------------------------------------------------------------
diff --git a/examples/jpa-enumerated/README.md b/examples/jpa-enumerated/README.md
deleted file mode 100644
index d85b3b0..0000000
--- a/examples/jpa-enumerated/README.md
+++ /dev/null
@@ -1,252 +0,0 @@
-index-group=EntityManagers
-type=page
-status=published
-title=JPA and Enums via @Enumerated
-~~~~~~
-
-It can sometimes be desirable to have a Java `enum` type to represent a particular column in a database. JPA supports converting database data to and from Java `enum` types via the `@javax.persistence.Enumerated` annotation.
-
-This example will show basic `@Enumerated` usage in a field of an `@Entity` as well as `enum`s as the parameter of a `Query`.  We'll also see that the actual database representation can be effectively `String` or `int`.
-
-## Enum
-
-For our example we will leverage the familiar `Movie` entity and add a new field to represent the MPAA.org rating of the movie.  This is defined via a simple `enum` that requires no JPA specific annotations.
-
-    public enum Rating {
-        UNRATED,
-        G,
-        PG,
-        PG13,
-        R,
-        NC17
-    }
-
-## @Enumerated
-
-In our `Movie` entity, we add a `rating` field of the enum type `Rating` and annotate it with `@Enumerated(EnumType.STRING)` to declare that its value should be converted from what is effectively a `String` in the database to the `Rating` type.
-
-    @Entity
-    public class Movie {
-
-        @Id
-        @GeneratedValue
-        private int id;
-        private String director;
-        private String title;
-        private int year;
-
-        @Enumerated(EnumType.STRING)
-        private Rating rating;
-
-        public Movie() {
-        }
-
-        public Movie(String director, String title, int year, Rating rating) {
-            this.director = director;
-            this.title = title;
-            this.year = year;
-            this.rating = rating;
-        }
-
-        public String getDirector() {
-            return director;
-        }
-
-        public void setDirector(String director) {
-            this.director = director;
-        }
-
-        public String getTitle() {
-            return title;
-        }
-
-        public void setTitle(String title) {
-            this.title = title;
-        }
-
-        public int getYear() {
-            return year;
-        }
-
-        public void setYear(int year) {
-            this.year = year;
-        }
-
-        public Rating getRating() {
-            return rating;
-        }
-
-        public void setRating(Rating rating) {
-            this.rating = rating;
-        }
-    }
-
-The above is enough and we are effectively done.  For the sake of completeness we'll show a sample `Query`
-
-## Enum in JPQL Query
-
-Note the `findByRating` method which creates a `Query` with a `rating` named parameter.  The key thing to notice is that the `rating` enum instance itself is passed into the
- `query.setParameter` method, **not** `rating.name()` or `rating.ordinal()`.
-
-Regardless if you use `EnumType.STRING` or `EnumType.ORDINAL`, you still always pass the enum itself in calls to `query.setParameter`.
-
-    @Stateful
-    public class Movies {
-
-        @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
-        private EntityManager entityManager;
-
-        public void addMovie(Movie movie) {
-            entityManager.persist(movie);
-        }
-
-        public void deleteMovie(Movie movie) {
-            entityManager.remove(movie);
-        }
-
-        public List<Movie> findByRating(Rating rating) {
-            final Query query = entityManager.createQuery("SELECT m FROM Movie as m WHERE m.rating = :rating");
-            query.setParameter("rating", rating);
-            return query.getResultList();
-        }
-
-        public List<Movie> getMovies() throws Exception {
-            Query query = entityManager.createQuery("SELECT m from Movie as m");
-            return query.getResultList();
-        }
-
-    }
-
-## EnumType.STRING vs EnumType.ORDINAL
-
-It is a matter of style how you would like your `enum` data represented in the database.  Either `name()` or `ordinal()` are supported:
-
- - `@Enumerated(EnumType.STRING) Rating rating` the value of `rating.name()` is written and read from the corresponding database column; e.g. `G`, `PG`, `PG13`
- - `@Enumerated(EnumType.ORDINAL) Rating rating` the value of `rating.ordinal()` is written and read from the corresponding database column; e.g. `0`, `1`, `2`
-
-The default is `EnumType.ORDINAL`
-
-There are advantages and disadvantages to each.
-
-### Disadvantage of EnumType.ORDINAL
-
-A disadvantage of `EnumType.ORDINAL` is the effect of time and the desire to keep `enums` in a logical order.  With `EnumType.ORDINAL` any new enum elements must be added to the
-**end** of the list or you will accidentally change the meaning of all your records.
-
-Let's use our `Rating` enum and see how it would have had to evolve over time to keep up with changes in the MPAA.org ratings system.
-
-**1980**
-
-    public enum Rating {
-        G,
-        PG,
-        R,
-        UNRATED
-    }
-
-**1984** PG-13 is added
-
-    public enum Rating {
-        G,
-        PG,
-        R,
-        UNRATED,
-        PG13
-    }
-
-**1990** NC-17 is added
-
-    public enum Rating {
-        G,
-        PG,
-        R,
-        UNRATED,
-        PG13,
-        NC17
-    }
-
-If `EnumType.STRING` was used, then the enum could be reordered at anytime and would instead look as we have defined it originally with ratings starting at `G` and increasing in severity to `NC17` and eventually `UNRATED`.  With `EnumType.ORDINAL` the logical ordering would not have withstood the test of time as new values were added.
-
-If the order of the enum values is significant to your code, avoid `EnumType.ORDINAL`
-
-## Unit Testing the JPA @Enumerated
-
-    public class MoviesTest extends TestCase {
-
-        public void test() throws Exception {
-
-            final Properties p = new Properties();
-            p.put("movieDatabase", "new://Resource?type=DataSource");
-            p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
-            p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
-
-            EJBContainer container = EJBContainer.createEJBContainer(p);
-            final Context context = container.getContext();
-
-            final Movies movies = (Movies) context.lookup("java:global/jpa-scratch/Movies");
-
-            movies.addMovie(new Movie("James Frawley", "The Muppet Movie", 1979, Rating.G));
-            movies.addMovie(new Movie("Jim Henson", "The Great Muppet Caper", 1981, Rating.G));
-            movies.addMovie(new Movie("Frank Oz", "The Muppets Take Manhattan", 1984, Rating.G));
-            movies.addMovie(new Movie("James Bobin", "The Muppets", 2011, Rating.PG));
-
-            assertEquals("List.size()", 4, movies.getMovies().size());
-
-            assertEquals("List.size()", 3, movies.findByRating(Rating.G).size());
-
-            assertEquals("List.size()", 1, movies.findByRating(Rating.PG).size());
-
-            assertEquals("List.size()", 0, movies.findByRating(Rating.R).size());
-
-            container.close();
-        }
-    }
-
-# Running
-
-To run the example via maven:
-
-    cd jpa-enumerated
-    mvn clean install
-
-Which will generate output similar to the following:
-    
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.jpa.enums.MoviesTest
-    Apache OpenEJB 4.0.0-beta-2    build: 20120115-08:26
-    http://tomee.apache.org/
-    INFO - openejb.home = /Users/dblevins/openejb/examples/jpa-enumerated
-    INFO - openejb.base = /Users/dblevins/openejb/examples/jpa-enumerated
-    INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
-    INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
-    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
-    INFO - Found EjbModule in classpath: /Users/dblevins/openejb/examples/jpa-enumerated/target/classes
-    INFO - Beginning load: /Users/dblevins/openejb/examples/jpa-enumerated/target/classes
-    INFO - Configuring enterprise application: /Users/dblevins/openejb/examples/jpa-enumerated
-    INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
-    INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
-    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    INFO - Auto-creating a container for bean org.superbiz.jpa.enums.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
-    INFO - Configuring PersistenceUnit(name=movie-unit)
-    INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
-    INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
-    INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
-    INFO - Enterprise application "/Users/dblevins/openejb/examples/jpa-enumerated" loaded.
-    INFO - Assembling app: /Users/dblevins/openejb/examples/jpa-enumerated
-    INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 406ms
-    INFO - Jndi(name="java:global/jpa-enumerated/Movies!org.superbiz.jpa.enums.Movies")
-    INFO - Jndi(name="java:global/jpa-enumerated/Movies")
-    INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Deployed Application(path=/Users/dblevins/openejb/examples/jpa-enumerated)
-    INFO - Undeploying app: /Users/dblevins/openejb/examples/jpa-enumerated
-    INFO - Closing DataSource: movieDatabase
-    INFO - Closing DataSource: movieDatabaseNonJta
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.831 sec
-
-    Results :
-
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-hibernate/README.adoc
----------------------------------------------------------------------
diff --git a/examples/jpa-hibernate/README.adoc b/examples/jpa-hibernate/README.adoc
new file mode 100644
index 0000000..0bb85f1
--- /dev/null
+++ b/examples/jpa-hibernate/README.adoc
@@ -0,0 +1,213 @@
+= JPA Hibernate
+:index-group: JPA
+:jbake-type: page
+:jbake-status: published
+
+This example shows the persist, remove and creation a query in JPA Hibernate.
+The Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects / classes and a relational database.
+
+== Movie
+
+Define the class Movie as an entity with de annotation @Entity
+
+....
+package org.superbiz.injection.h3jpa;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Movie {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private long id;
+
+    private String director;
+    private String title;
+    private int year;
+
+    public Movie() {
+    }
+
+    public Movie(String director, String title, int year) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public void setDirector(String director) {
+        this.director = director;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+
+}
+....
+
+== Movies
+
+@PersistenceContext A persistence context is a set of entities such that for any persistent identity there is a unique entity instance.
+@EntityManager is associated with a persistence context. Is at the core of JPA, supported by some methods: persist, remove,merge, find,
+
+....
+package org.superbiz.injection.h3jpa;
+
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import javax.persistence.Query;
+import java.util.List;
+
+@Stateful
+public class Movies {
+
+    @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
+    private EntityManager entityManager;
+
+    public void addMovie(Movie movie) throws Exception {
+        entityManager.persist(movie);
+    }
+
+    public void deleteMovie(Movie movie) throws Exception {
+        entityManager.remove(movie);
+    }
+
+    public List<Movie> getMovies() throws Exception {
+        Query query = entityManager.createQuery("SELECT m from Movie as m");
+        return query.getResultList();
+    }
+}
+....
+
+== persistence.xml
+
+ <persistence version="1.0"
+              xmlns="http://java.sun.com/xml/ns/persistence"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+   <persistence-unit name="movie-unit">
+     <provider>org.hibernate.ejb.HibernatePersistence</provider>
+     <jta-data-source>movieDatabase</jta-data-source>
+     <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+     <properties>
+       <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+       <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+     </properties>
+   </persistence-unit>
+ </persistence>
+
+== MoviesTest
+
+....
+package org.superbiz.injection.h3jpa;
+
+import junit.framework.TestCase;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.naming.Context;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * @version $Revision: 607077 $ $Date: 2007-12-27 06:55:23 -0800 (Thu, 27 Dec 2007) $
+ */
+public class MoviesTest extends TestCase {
+
+    public void test() throws Exception {
+        final Properties p = new Properties();
+        p.put("movieDatabase", "new://Resource?type=DataSource");
+        p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+        p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+
+        final Context context = EJBContainer.createEJBContainer(p).getContext();
+        Movies movies = (Movies) context.lookup("java:global/jpa-hibernate/Movies");
+
+        movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
+        movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
+        movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
+
+        List<Movie> list = movies.getMovies();
+        assertEquals("List.size()", 3, list.size());
+
+        for (Movie movie : list) {
+            movies.deleteMovie(movie);
+        }
+
+        assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
+    }
+}
+....
+
+= Running
+
+To run the example via maven:
+
+cd jpa-hibernate
+mvn clean install
+
+Which will generate output similar to the following:
+
+....
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.injection.h3jpa.MoviesTest
+Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/examples/jpa-hibernate
+INFO - openejb.base = /Users/dblevins/examples/jpa-hibernate
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
+INFO - Found EjbModule in classpath: /Users/dblevins/examples/jpa-hibernate/target/classes
+INFO - Beginning load: /Users/dblevins/examples/jpa-hibernate/target/classes
+INFO - Configuring enterprise application: /Users/dblevins/examples/jpa-hibernate
+INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
+INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
+INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.injection.h3jpa.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Configuring PersistenceUnit(name=movie-unit, provider=org.hibernate.ejb.HibernatePersistence)
+INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
+INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
+INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
+INFO - Enterprise application "/Users/dblevins/examples/jpa-hibernate" loaded.
+INFO - Assembling app: /Users/dblevins/examples/jpa-hibernate
+INFO - PersistenceUnit(name=movie-unit, provider=org.hibernate.ejb.HibernatePersistence) - provider time 631ms
+INFO - Jndi(name="java:global/jpa-hibernate/Movies!org.superbiz.injection.h3jpa.Movies")
+INFO - Jndi(name="java:global/jpa-hibernate/Movies")
+INFO - Jndi(name="java:global/EjbModule1235930463/org.superbiz.injection.h3jpa.MoviesTest!org.superbiz.injection.h3jpa.MoviesTest")
+INFO - Jndi(name="java:global/EjbModule1235930463/org.superbiz.injection.h3jpa.MoviesTest")
+INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Created Ejb(deployment-id=org.superbiz.injection.h3jpa.MoviesTest, ejb-name=org.superbiz.injection.h3jpa.MoviesTest, container=Default Managed Container)
+INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
+INFO - Started Ejb(deployment-id=org.superbiz.injection.h3jpa.MoviesTest, ejb-name=org.superbiz.injection.h3jpa.MoviesTest, container=Default Managed Container)
+INFO - Deployed Application(path=/Users/dblevins/examples/jpa-hibernate)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.22 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+....

http://git-wip-us.apache.org/repos/asf/tomee/blob/a68903e7/examples/jpa-hibernate/README.md
----------------------------------------------------------------------
diff --git a/examples/jpa-hibernate/README.md b/examples/jpa-hibernate/README.md
deleted file mode 100644
index 081fad4..0000000
--- a/examples/jpa-hibernate/README.md
+++ /dev/null
@@ -1,209 +0,0 @@
-index-group=EntityManagers
-type=page
-status=published
-title=JPA Hibernate
-~~~~~~
-
-This example shows the persist, remove and creation a query in JPA Hibernate.
-The Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects / classes and a relational database.
-
-
-## Movie
-
-Define the class Movie as an entity with de annotation @Entity
-
-    package org.superbiz.injection.h3jpa;
-    
-    import javax.persistence.Entity;
-    import javax.persistence.GeneratedValue;
-    import javax.persistence.GenerationType;
-    import javax.persistence.Id;
-    
-    @Entity
-    public class Movie {
-    
-        @Id
-        @GeneratedValue(strategy = GenerationType.AUTO)
-        private long id;
-    
-        private String director;
-        private String title;
-        private int year;
-    
-        public Movie() {
-        }
-    
-        public Movie(String director, String title, int year) {
-            this.director = director;
-            this.title = title;
-            this.year = year;
-        }
-    
-        public String getDirector() {
-            return director;
-        }
-    
-        public void setDirector(String director) {
-            this.director = director;
-        }
-    
-        public String getTitle() {
-            return title;
-        }
-    
-        public void setTitle(String title) {
-            this.title = title;
-        }
-    
-        public int getYear() {
-            return year;
-        }
-    
-        public void setYear(int year) {
-            this.year = year;
-        }
-    
-    }
-
-## Movies
-
-@PersistenceContext A persistence context is a set of entities such that for any persistent identity there is a unique entity instance.
-@EntityManager is associated with a persistence context. Is at the core of JPA, supported by some methods: persist, remove,merge, find,
-
-    package org.superbiz.injection.h3jpa;
-    
-    import javax.ejb.Stateful;
-    import javax.persistence.EntityManager;
-    import javax.persistence.PersistenceContext;
-    import javax.persistence.PersistenceContextType;
-    import javax.persistence.Query;
-    import java.util.List;
-    
-    @Stateful
-    public class Movies {
-    
-        @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.EXTENDED)
-        private EntityManager entityManager;
-    
-        public void addMovie(Movie movie) throws Exception {
-            entityManager.persist(movie);
-        }
-    
-        public void deleteMovie(Movie movie) throws Exception {
-            entityManager.remove(movie);
-        }
-    
-        public List<Movie> getMovies() throws Exception {
-            Query query = entityManager.createQuery("SELECT m from Movie as m");
-            return query.getResultList();
-        }
-    }
-
-## persistence.xml
-
-    <persistence version="1.0"
-                 xmlns="http://java.sun.com/xml/ns/persistence"
-                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
-      <persistence-unit name="movie-unit">
-        <provider>org.hibernate.ejb.HibernatePersistence</provider>
-        <jta-data-source>movieDatabase</jta-data-source>
-        <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
-        <properties>
-          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
-          <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
-        </properties>
-      </persistence-unit>
-    </persistence>
-    
-
-## MoviesTest
-
-    package org.superbiz.injection.h3jpa;
-    
-    import junit.framework.TestCase;
-    
-    import javax.ejb.embeddable.EJBContainer;
-    import javax.naming.Context;
-    import java.util.List;
-    import java.util.Properties;
-    
-    /**
-     * @version $Revision: 607077 $ $Date: 2007-12-27 06:55:23 -0800 (Thu, 27 Dec 2007) $
-     */
-    public class MoviesTest extends TestCase {
-    
-        public void test() throws Exception {
-            final Properties p = new Properties();
-            p.put("movieDatabase", "new://Resource?type=DataSource");
-            p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
-            p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
-    
-            final Context context = EJBContainer.createEJBContainer(p).getContext();
-            Movies movies = (Movies) context.lookup("java:global/jpa-hibernate/Movies");
-    
-            movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
-            movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
-            movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
-    
-            List<Movie> list = movies.getMovies();
-            assertEquals("List.size()", 3, list.size());
-    
-            for (Movie movie : list) {
-                movies.deleteMovie(movie);
-            }
-    
-            assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
-        }
-    }
-
-# Running
-
-To run the example via maven:
-
-cd jpa-hibernate
-mvn clean install
-
-Which will generate output similar to the following:
-    
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.injection.h3jpa.MoviesTest
-    Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
-    http://tomee.apache.org/
-    INFO - openejb.home = /Users/dblevins/examples/jpa-hibernate
-    INFO - openejb.base = /Users/dblevins/examples/jpa-hibernate
-    INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
-    INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
-    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)
-    INFO - Found EjbModule in classpath: /Users/dblevins/examples/jpa-hibernate/target/classes
-    INFO - Beginning load: /Users/dblevins/examples/jpa-hibernate/target/classes
-    INFO - Configuring enterprise application: /Users/dblevins/examples/jpa-hibernate
-    INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
-    INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)
-    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    INFO - Auto-creating a container for bean org.superbiz.injection.h3jpa.MoviesTest: Container(type=MANAGED, id=Default Managed Container)
-    INFO - Configuring PersistenceUnit(name=movie-unit, provider=org.hibernate.ejb.HibernatePersistence)
-    INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.
-    INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)
-    INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'
-    INFO - Enterprise application "/Users/dblevins/examples/jpa-hibernate" loaded.
-    INFO - Assembling app: /Users/dblevins/examples/jpa-hibernate
-    INFO - PersistenceUnit(name=movie-unit, provider=org.hibernate.ejb.HibernatePersistence) - provider time 631ms
-    INFO - Jndi(name="java:global/jpa-hibernate/Movies!org.superbiz.injection.h3jpa.Movies")
-    INFO - Jndi(name="java:global/jpa-hibernate/Movies")
-    INFO - Jndi(name="java:global/EjbModule1235930463/org.superbiz.injection.h3jpa.MoviesTest!org.superbiz.injection.h3jpa.MoviesTest")
-    INFO - Jndi(name="java:global/EjbModule1235930463/org.superbiz.injection.h3jpa.MoviesTest")
-    INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Created Ejb(deployment-id=org.superbiz.injection.h3jpa.MoviesTest, ejb-name=org.superbiz.injection.h3jpa.MoviesTest, container=Default Managed Container)
-    INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)
-    INFO - Started Ejb(deployment-id=org.superbiz.injection.h3jpa.MoviesTest, ejb-name=org.superbiz.injection.h3jpa.MoviesTest, container=Default Managed Container)
-    INFO - Deployed Application(path=/Users/dblevins/examples/jpa-hibernate)
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.22 sec
-    
-    Results :
-    
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-    


Mime
View raw message