Author: dblevins Date: Fri Sep 28 19:58:16 2012 New Revision: 1391621 URL: http://svn.apache.org/viewvc?rev=1391621&view=rev Log: svn merge -r 1391610:1391611 https://svn.apache.org/repos/asf/openejb/trunk/openejb
http://svn.apache.org/viewvc?view=revision&revision=1391611 ------------------------------------------------------------------------ r1391611 | dblevins | 2012-09-28 14:20:14 -0500 (Fri, 28 Sep 2012) | 1 line add back in jaxb pre-load ------------------------------------------------------------------------ Modified: openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java Modified: openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java URL: http://svn.apache.org/viewvc/openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java?rev=1391621&r1=1391620&r2=1391621&view=diff ============================================================================== --- openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java (original) +++ openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java Fri Sep 28 19:58:16 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) { + } + } + } }
