You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/09/28 21:58:16 UTC

svn commit: r1391621 - /openejb/branches/openejb-4.5.0/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java

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