Author: rmannibucau
Date: Sun Nov 11 11:55:46 2012
New Revision: 1407951

URL: http://svn.apache.org/viewvc?rev=1407951&view=rev
Log:
preload service providers in warmup

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java?rev=1407951&r1=1407950&r2=1407951&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/Core.java
 Sun Nov 11 11:55:46 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb;
 
+import org.apache.openejb.config.ServiceUtils;
 import org.apache.openejb.util.Messages;
 
 import java.util.concurrent.Semaphore;
@@ -84,6 +85,18 @@ public class Core {
         };
         preloadMessages.start();
 
+        final Thread preloadServiceProviders = new Thread() {
+            @Override
+            public void run() {
+                try {
+                    ServiceUtils.getServiceProviders();
+                } catch (OpenEJBException e) {
+                    // no-op
+                }
+            }
+        };
+        preloadServiceProviders.start();
+
         final int permits = 2 * Runtime.getRuntime().availableProcessors() + 1;
         final Semaphore semaphore = new Semaphore(0);
         final ClassLoader loader = OpenEjbContainer.class.getClassLoader();
@@ -120,6 +133,7 @@ public class Core {
             thread.start();
         }
         try {
+            preloadServiceProviders.join();
             preloadMessages.join();
             semaphore.acquire(permits);
         } catch (InterruptedException e) {


Reply via email to