You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by dr...@apache.org on 2011/03/09 23:15:43 UTC

svn commit: r1080032 - in /tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa: JpaModule.java JpaSymbols.java

Author: drobiazko
Date: Wed Mar  9 22:15:43 2011
New Revision: 1080032

URL: http://svn.apache.org/viewvc?rev=1080032&view=rev
Log:
TAP5-1472: Added early startup for EntityManagerFactories.

Modified:
    tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java
    tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaSymbols.java

Modified: tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java?rev=1080032&r1=1080031&r2=1080032&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaModule.java Wed Mar  9 22:15:43 2011
@@ -37,6 +37,7 @@ import org.apache.tapestry5.ioc.OrderedC
 import org.apache.tapestry5.ioc.ScopeConstants;
 import org.apache.tapestry5.ioc.annotations.Contribute;
 import org.apache.tapestry5.ioc.annotations.Scope;
+import org.apache.tapestry5.ioc.annotations.Startup;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.services.FactoryDefaults;
 import org.apache.tapestry5.ioc.services.MasterObjectProvider;
@@ -113,6 +114,7 @@ public class JpaModule
             final MappedConfiguration<String, String> configuration)
     {
         configuration.add(JpaSymbols.PROVIDE_ENTITY_VALUE_ENCODERS, "true");
+        configuration.add(JpaSymbols.EARLY_START_UP, "true");
     }
 
     @Contribute(ValueEncoderSource.class)
@@ -134,7 +136,6 @@ public class JpaModule
 
             for (final String className : info.getManagedClassNames())
             {
-
                 final Metamodel metamodel = emf.getMetamodel();
 
                 final Class<?> clazz = loadClass(info, className);
@@ -156,6 +157,21 @@ public class JpaModule
         }
     }
 
+    @Startup
+    public static void startupEarly(final EntityManagerSource entityManagerSource,
+            @Symbol(JpaSymbols.EARLY_START_UP)
+            final boolean earlyStartup)
+    {
+        if (!earlyStartup)
+            return;
+
+        for (final PersistenceUnitInfo info : entityManagerSource.getPersistenceUnitInfos())
+        {
+            entityManagerSource.create(info.getPersistenceUnitName());
+        }
+
+    }
+
     private static Class loadClass(final PersistenceUnitInfo info, final String className)
     {
         try

Modified: tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaSymbols.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaSymbols.java?rev=1080032&r1=1080031&r2=1080032&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaSymbols.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/JpaSymbols.java Wed Mar  9 22:15:43 2011
@@ -17,4 +17,9 @@ package org.apache.tapestry5.jpa;
 public class JpaSymbols
 {
     public static final String PROVIDE_ENTITY_VALUE_ENCODERS = "tapestry.jpa.provide-entity-value-encoders";
+
+    /**
+     * If "true", then JPA will be started up at application launch, rather than lazily.
+     */
+    public static final String EARLY_START_UP = "tapestry.jpa.early-startup";
 }