[jboss-cvs] jboss-seam/src/main/org/jboss/seam/persistence ...
Gavin King
gavin.king at jboss.com
Mon Jul 16 04:45:27 EDT 2007
User: gavin
Date: 07/07/16 04:45:27
Modified: src/main/org/jboss/seam/persistence
EntityManagerFactory.java
HibernateSessionFactory.java
Log:
lazy startup of the persistence unit
Revision Changes Path
1.4 +27 -7 jboss-seam/src/main/org/jboss/seam/persistence/EntityManagerFactory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: EntityManagerFactory.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/EntityManagerFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- EntityManagerFactory.java 16 Jul 2007 06:47:36 -0000 1.3
+++ EntityManagerFactory.java 16 Jul 2007 08:45:27 -0000 1.4
@@ -1,4 +1,4 @@
-//$Id: EntityManagerFactory.java,v 1.3 2007/07/16 06:47:36 gavin Exp $
+//$Id: EntityManagerFactory.java,v 1.4 2007/07/16 08:45:27 gavin Exp $
package org.jboss.seam.persistence;
import java.util.HashMap;
@@ -34,10 +34,15 @@
private Map persistenceUnitProperties;
private javax.persistence.EntityManagerFactory entityManagerFactory;
+ private boolean lazy;
+
@Unwrap
public javax.persistence.EntityManagerFactory getEntityManagerFactory()
{
-// TODO: eager/lazy modes
+ if (lazy && entityManagerFactory==null)
+ {
+ entityManagerFactory = createEntityManagerFactory();
+ }
return entityManagerFactory;
}
@@ -48,8 +53,10 @@
{
persistenceUnitName = component.getName();
}
- //TODO: eager/lazy modes
- createEntityManagerFactory();
+ if (!lazy)
+ {
+ entityManagerFactory = createEntityManagerFactory();
+ }
}
@Destroy
@@ -61,7 +68,7 @@
}
}
- protected void createEntityManagerFactory()
+ protected javax.persistence.EntityManagerFactory createEntityManagerFactory()
{
Map properties = new HashMap();
Hashtable<String, String> jndiProperties = Naming.getInitialContextProperties();
@@ -80,11 +87,11 @@
if ( properties.isEmpty() )
{
- entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName);
+ return Persistence.createEntityManagerFactory(persistenceUnitName);
}
else
{
- entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName, properties);
+ return Persistence.createEntityManagerFactory(persistenceUnitName, properties);
}
}
@@ -114,4 +121,17 @@
this.persistenceUnitProperties = persistenceUnitProperties;
}
+ /**
+ * Should the EMF be created lazily when first needed?
+ */
+ public boolean isLazy()
+ {
+ return lazy;
+ }
+
+ public void setLazy(boolean lazy)
+ {
+ this.lazy = lazy;
+ }
+
}
1.4 +21 -4 jboss-seam/src/main/org/jboss/seam/persistence/HibernateSessionFactory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HibernateSessionFactory.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/HibernateSessionFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- HibernateSessionFactory.java 16 Jul 2007 06:47:36 -0000 1.3
+++ HibernateSessionFactory.java 16 Jul 2007 08:45:27 -0000 1.4
@@ -1,4 +1,4 @@
-//$Id: HibernateSessionFactory.java,v 1.3 2007/07/16 06:47:36 gavin Exp $
+//$Id: HibernateSessionFactory.java,v 1.4 2007/07/16 08:45:27 gavin Exp $
package org.jboss.seam.persistence;
import java.io.File;
@@ -67,19 +67,26 @@
private List<String> mappingResources;
private NamingStrategy namingStrategy;
+ private boolean lazy;
+
@Unwrap
public SessionFactory getSessionFactory() throws Exception
{
- //TODO: eager/lazy modes
+ if (lazy && sessionFactory==null)
+ {
+ sessionFactory = createSessionFactory();
+ }
return sessionFactory;
}
@Create
public void startup() throws Exception
{
- //TODO: eager/lazy modes
+ if (!lazy)
+ {
sessionFactory = createSessionFactory();
}
+ }
@Destroy
public void shutdown()
@@ -247,4 +254,14 @@
this.mappingResources = mappingResources;
}
+ public boolean isLazy()
+ {
+ return lazy;
+ }
+
+ public void setLazy(boolean lazy)
+ {
+ this.lazy = lazy;
+ }
+
}
More information about the jboss-cvs-commits
mailing list