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) {