[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