You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/11/18 07:25:46 UTC
svn commit: r1542912 -
/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
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()) {