Java 类org.apache.catalina.core.ApplicationContext 实例源码

项目:tomee    文件:TomEEMyFacesContainerInitializer.java   
private boolean isFacesServletPresent(final ServletContext ctx) {
    if (ctx instanceof ApplicationContextFacade) {
        try {
            final ApplicationContext appCtx = (ApplicationContext) get(ApplicationContextFacade.class, ctx);
            final Context tomcatCtx = (Context) get(ApplicationContext.class, appCtx);
            if (tomcatCtx instanceof StandardContext) {
                final Container[] servlets = tomcatCtx.findChildren();
                if (servlets != null) {
                    for (final Container s : servlets) {
                        if (s instanceof Wrapper) {
                            if ("javax.faces.webapp.FacesServlet".equals(((Wrapper) s).getServletClass())
                                    || "Faces Servlet".equals(s.getName())) {
                                return true;
                            }
                        }
                    }
                }
            }
        } catch (final Exception e) {
            // no-op
        }
    }
    return false;
}
项目:tomcat8-redis-session-manager    文件:WebApp.java   
protected RedisSessionManager getRedisSessionManager(Request request) {
  RedisSessionManager sessionManager = null;
  ApplicationContextFacade appContextFacadeObj = (ApplicationContextFacade)request.session().raw().getServletContext();
  try {
    Field applicationContextField = appContextFacadeObj.getClass().getDeclaredField("context");
    applicationContextField.setAccessible(true);
    ApplicationContext appContextObj = (ApplicationContext)applicationContextField.get(appContextFacadeObj);
    Field standardContextField = appContextObj.getClass().getDeclaredField("context");
    standardContextField.setAccessible(true);
    StandardContext standardContextObj = (StandardContext)standardContextField.get(appContextObj);
    sessionManager = (RedisSessionManager)standardContextObj.getManager();
  } catch (Exception e) { }
  return sessionManager;
}
项目:tomee    文件:TomEEMyFacesContainerInitializer.java   
@Override
public void onStartup(final Set<Class<?>> classes, final ServletContext ctx) throws ServletException {
    // try to skip first
    if ("true".equalsIgnoreCase(ctx.getInitParameter("org.apache.myfaces.INITIALIZE_ALWAYS_STANDALONE"))
            || "true".equals(SystemInstance.get().getProperty(OPENEJB_JSF_SKIP, "false"))) {
        return;
    }

    // if mojarra is present skip myfaces startup
    try {
        ctx.getClassLoader().loadClass("com.sun.faces.context.SessionMap");
        return;
    } catch (final ClassNotFoundException | NoClassDefFoundError cnfe) {
        // no-op
    }

    // some message filtering, not a perf killer since this class don't log a lot
    final Logger abstractInitializerLogger = Logger.getLogger(AbstractFacesInitializer.class.getName());
    abstractInitializerLogger.setFilter(new RemoveLogMessage(
            new RemoveLogMessage(abstractInitializerLogger.getFilter(),
                    Level.WARNING, "No mappings of FacesServlet found. Abort initializing MyFaces."),
            Level.WARNING, "No mappings of FacesServlet found. Abort destroy MyFaces."));

    final boolean facesServletPresent = isFacesServletPresent(ctx);
    if (facesServletPresent || isFacesConfigPresent(ctx)) {
        // we found a faces-config.xml or some classes so let's delegate to myfaces

        // since we don't want to call isFacesConfigPresent again (it scan all jars!!!!)
        // forcing classes to not be empty
        Set<Class<?>> passedClasses = classes;
        if (passedClasses == null) {
            passedClasses = new HashSet<Class<?>>();
        }
        if (passedClasses.isEmpty()) {
            passedClasses.add(TomEEMyFacesContainerInitializer.class);
        }

        if (ctx instanceof ApplicationContextFacade) {
            try {
                final ApplicationContext appCtx = (ApplicationContext) get(ApplicationContextFacade.class, ctx);
                final Context tomcatCtx = (Context) get(ApplicationContext.class, appCtx);
                if (!Arrays.asList(tomcatCtx.findApplicationListeners()).contains(StartupServletContextListener.class.getName())) {
                    addListener(ctx);
                }
            } catch (final Exception e) {
                // add it, not important we'll simply get a warning saying it is already here
                addListener(ctx);
            }
        }

        // finally delegating begin sure we'll not call isFacesConfigPresent
        if (!facesServletPresent) {
            delegate.onStartup(classes, ctx);
        } // else already done since there is the servlet
    }
}
项目:restful-api-cxf-spring-java    文件:BaseTest.java   
public void setApplicationContext(ApplicationContext context) throws BeansException {
    // TODO Auto-generated method stub

}