Author: rmannibucau
Date: Fri Oct 25 08:34:44 2013
New Revision: 1535656
URL: http://svn.apache.org/r1535656
Log:
using fastBoot property when using jaxb
Modified:
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
Modified:
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java?rev=1535656&r1=1535655&r2=1535656&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
(original)
+++
tomee/tomee/trunk/container/openejb-jee/src/main/java/org/apache/openejb/jee/JAXBContextFactory.java
Fri Oct 25 08:34:44 2013
@@ -17,6 +17,8 @@
*/
package org.apache.openejb.jee;
+import org.apache.openejb.loader.SystemInstance;
+
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import java.util.Map;
@@ -24,10 +26,30 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
public final class JAXBContextFactory {
+ private static final boolean USE_FAST_BOOT =
"true".equals(SystemInstance.get().getProperty("openejb.jaxb.fastBoot",
"true"));
+ private static final String FAST_BOOT =
"com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot";
private static final java.util.logging.Logger log =
java.util.logging.Logger.getLogger(JAXBContextFactory.class.getName());
// private static boolean useSXC = false;
+ private static String setFastBoot() {
+ final String fastBoot = System.getProperty(FAST_BOOT);
+ if (USE_FAST_BOOT) {
+ System.setProperty(FAST_BOOT, Boolean.TRUE.toString());
+ }
+ return fastBoot;
+ }
+
+ private static void resetFastBoot(final String fastBoot) {
+ if (USE_FAST_BOOT) {
+ if (fastBoot == null) {
+ System.clearProperty(FAST_BOOT);
+ } else {
+ System.setProperty(FAST_BOOT, fastBoot);
+ }
+ }
+ }
+
public static JAXBContext newInstance(final String s) throws JAXBException
{
// if (useSXC) {
// try {
@@ -37,7 +59,12 @@ public final class JAXBContextFactory {
// }
final Event event = Event.start(s);
try {
- return JAXBContext.newInstance(s);
+ final String fastBoot = setFastBoot();
+ try {
+ return JAXBContext.newInstance(s);
+ } finally {
+ resetFastBoot(fastBoot);
+ }
} finally {
event.stop();
}
@@ -53,7 +80,12 @@ public final class JAXBContextFactory {
final Event event = Event.start(s);
try {
- return JAXBContext.newInstance(s, classLoader);
+ final String fastBoot = setFastBoot();
+ try {
+ return JAXBContext.newInstance(s, classLoader);
+ } finally {
+ resetFastBoot(fastBoot);
+ }
} finally {
event.stop();
}
@@ -69,7 +101,12 @@ public final class JAXBContextFactory {
final Event event = Event.start(s);
try {
- return JAXBContext.newInstance(s, classLoader, properties);
+ final String fastBoot = setFastBoot();
+ try {
+ return JAXBContext.newInstance(s, classLoader, properties);
+ } finally {
+ resetFastBoot(fastBoot);
+ }
} finally {
event.stop();
}
@@ -90,7 +127,12 @@ public final class JAXBContextFactory {
sb.deleteCharAt(sb.length() - 1);
final Event event = Event.start(sb.toString());
try {
- return JAXBContext.newInstance(classes);
+ final String fastBoot = setFastBoot();
+ try {
+ return JAXBContext.newInstance(classes);
+ } finally {
+ resetFastBoot(fastBoot);
+ }
} finally {
event.stop();
}
@@ -112,7 +154,12 @@ public final class JAXBContextFactory {
sb.deleteCharAt(sb.length() - 1);
final Event event = Event.start(sb.toString());
try {
- return JAXBContext.newInstance(classes, properties);
+ final String fastBoot = setFastBoot();
+ try {
+ return JAXBContext.newInstance(classes, properties);
+ } finally {
+ resetFastBoot(fastBoot);
+ }
} finally {
event.stop();
}