Author: dblevins
Date: Fri Sep 28 19:20:14 2012
New Revision: 1391611
URL: http://svn.apache.org/viewvc?rev=1391611&view=rev
Log:
add back in jaxb pre-load
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java?rev=1391611&r1=1391610&r2=1391611&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java
Fri Sep 28 19:20:14 2012
@@ -17,7 +17,10 @@
package org.apache.tomee.catalina;
import org.apache.openejb.config.TldScanner;
+import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.jee.WebApp;
+import javax.xml.bind.JAXBException;
import java.util.concurrent.Semaphore;
/**
@@ -154,6 +157,11 @@ public class Warmup {
final ClassLoader loader = Warmup.class.getClassLoader();
+ final JaxbJavaeeLoad jaxbJavaeeLoad = new JaxbJavaeeLoad(WebApp.class);
+ final Thread jaxb = new Thread(jaxbJavaeeLoad);
+ jaxb.setDaemon(true);
+ jaxb.start();
+
try { // see org.apache.openejb.Core
Class.forName("org.apache.openejb.util.Logger", true, loader);
Class.forName("org.apache.openejb.util.JuliLogStreamFactory",
true, loader);
@@ -165,6 +173,7 @@ public class Warmup {
final Semaphore semaphore = new Semaphore(0);
final Thread tld = new Thread() {
+
@Override
public void run() {
try {
@@ -205,9 +214,27 @@ public class Warmup {
try {
semaphore.acquire(permits);
tld.join();
+ jaxb.join();
} catch (InterruptedException e) {
Thread.interrupted();
}
}
+
+ private static class JaxbJavaeeLoad implements Runnable {
+
+ private final Class<?> type;
+
+ private JaxbJavaeeLoad(Class<?> type) {
+ this.type = type;
+ }
+
+ @Override
+ public void run() {
+ try {
+ JaxbJavaee.getContext(type);
+ } catch (JAXBException e) {
+ }
+ }
+ }
}