Author: rmannibucau
Date: Mon Nov 18 06:25:46 2013
New Revision: 1542912
URL: http://svn.apache.org/r1542912
Log:
TOMEE-1076 spring-web integration
Modified:
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Modified:
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1542912&r1=1542911&r2=1542912&view=diff
==============================================================================
---
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
(original)
+++
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Mon Nov 18 06:25:46 2013
@@ -74,6 +74,7 @@ import java.net.URLConnection;
import java.net.URLStreamHandler;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -365,15 +366,17 @@ public class OpenEJBContextConfig extend
return;
}
+ final ClassLoader classLoader = context.getLoader().getClassLoader();
+
// add myfaces auto-initializer if mojarra is not present
try {
-
context.getLoader().getClassLoader().loadClass("com.sun.faces.context.SessionMap");
+ classLoader.loadClass("com.sun.faces.context.SessionMap");
return;
} catch (final Throwable ignored) {
// no-op
}
try {
- final Class<?> myfacesInitializer =
Class.forName(MYFACES_TOMEEM_CONTAINER_INITIALIZER, true,
context.getLoader().getClassLoader());
+ final Class<?> myfacesInitializer =
Class.forName(MYFACES_TOMEEM_CONTAINER_INITIALIZER, true, classLoader);
final ServletContainerInitializer instance =
(ServletContainerInitializer) myfacesInitializer.newInstance();
context.addServletContainerInitializer(instance,
getJsfClasses(context));
context.addApplicationListener(new
ApplicationListener(TOMEE_MYFACES_CONTEXT_LISTENER, false)); // cleanup listener
@@ -413,9 +416,22 @@ public class OpenEJBContextConfig extend
try {
super.processServletContainerInitializers(fragments);
- if (typeInitializerMap.size() > 0 && finder != null) {
- final ClassLoader loader =
context.getLoader().getClassLoader();
+ final ClassLoader loader = context.getLoader().getClassLoader();
+
+ // spring-web (not scanned)
+ try {
+ final Class<?> initializer =
Class.forName("org.springframework.web.SpringServletContainerInitializer",
true, loader);
+ final ServletContainerInitializer instance =
(ServletContainerInitializer) initializer.newInstance();
+
typeInitializerMap.put(Class.forName("org.springframework.web.WebApplicationInitializer",
true, loader), Collections.singleton(instance));
+ initializerClassMap.put(instance, new HashSet<Class<?>>());
+ } catch (final Exception ignored) {
+ // no-op
+ } catch (final NoClassDefFoundError error) {
+ // no-op
+ }
+ // scanned SCIs
+ if (typeInitializerMap.size() > 0 && finder != null) {
for (final Map.Entry<Class<?>,
Set<ServletContainerInitializer>> entry : typeInitializerMap.entrySet()) {
final Class<?> annotation = entry.getKey();
for (final ServletContainerInitializer sci :
entry.getValue()) {