org.apache.catalina.core.ApplicationContextFacade Java Examples
The following examples show how to use
org.apache.catalina.core.ApplicationContextFacade.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MetricsServletModule.java From che with Eclipse Public License 2.0 | 6 votes |
private Manager getManager(ServletContext servletContext) { try { ApplicationContextFacade acf = (ApplicationContextFacade) servletContext; Field applicationContextFacadeField = ApplicationContextFacade.class.getDeclaredField("context"); applicationContextFacadeField.setAccessible(true); ApplicationContext appContext = (ApplicationContext) applicationContextFacadeField.get(acf); Field applicationContextField = ApplicationContext.class.getDeclaredField("context"); applicationContextField.setAccessible(true); StandardContext stdContext = (StandardContext) applicationContextField.get(appContext); return stdContext.getManager(); } catch (Exception e) { // maybe not in Tomcat? LOG.error("Unable to get Catalina Manager. Cause: {}", e.getMessage(), e); throw new RuntimeException(e.getMessage(), e); } }
Example #2
Source File: TomEEMyFacesContainerInitializer.java From tomee with Apache License 2.0 | 6 votes |
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; }
Example #3
Source File: TomEEMyFacesContainerInitializer.java From tomee with Apache License 2.0 | 4 votes |
@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 } }