Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jboss.weld.environment.jetty;
  
  
  import  javax.servlet.Filter;
  import  javax.servlet.Servlet;
  import  javax.servlet.ServletContext;
  
  import  org.eclipse.jetty.server.Handler;
  import  org.eclipse.jetty.server.Server;
 import  org.eclipse.jetty.server.handler.ContextHandler;
 import  org.eclipse.jetty.server.handler.HandlerCollection;
 import  org.eclipse.jetty.servlet.ServletHandler;
 import  org.eclipse.jetty.util.resource.Resource;
 import  org.eclipse.jetty.webapp.WebAppContext;

Deprecated:
As of Jetty 7.2 Weld implements org.eclipse.jetty.servlet.ServletContextHandler.Decorator to inject servlets and filters
Author(s):
Matija Mazi
Ales Justin
 
 public class EclipseWeldServletHandler extends ServletHandler {
 
     private ServletContext sco;
     private JettyWeldInjector injector;
 
     public EclipseWeldServletHandler(ServletHandler existingHandler, ServletContext servletContext) {
          = servletContext;
         setFilters(existingHandler.getFilters());
         setFilterMappings(existingHandler.getFilterMappings());
         setServlets(existingHandler.getServlets());
         setServletMappings(existingHandler.getServletMappings());
     }
 
     public Servlet customizeServlet(Servlet servletthrows Exception {
         inject(servlet);
         return servlet;
     }
 
     public Filter customizeFilter(Filter filterthrows Exception {
         inject(filter);
         return filter;
     }
 
     protected void inject(Object injectable) {
         if ( == null) {
              = (JettyWeldInjector.getAttribute(.);
         }
         if ( == null) {
             ..cantFindInjectior(injectable);
         } else {
             .inject(injectable);
         }
     }
 
     protected static void process(WebAppContext wacboolean startNewHandlerthrows Exception {
         EclipseWeldServletHandler wHandler = new EclipseWeldServletHandler(wac.getServletHandler(), wac.getServletContext());
         wac.setServletHandler(wHandler);
         wac.getSecurityHandler().setHandler(wHandler);
 
         if (startNewHandler) {
             wHandler.start();
         }
 
         Resource jettyEnv = null;
         Resource webInf = wac.getWebInf();
         if (webInf != null && webInf.exists()) {
             jettyEnv = webInf.addPath("jetty-env.xml");
         }
         if (jettyEnv == null || !(jettyEnv.exists())) {
             ..missingJettyEnvXml();
         }
     }
 
     public static void process(WebAppContext wacthrows Exception {
         process(wacfalse);
     }
 
     public static void process(ServletContext contextthrows Exception {
         WebAppContext wac = WebAppContext.getCurrentWebAppContext();
         if (wac == null) {
             wac = findWAC(context);
         }
 
         if (wac != null) {
             process(wactrue);
         } else {
         }
     }
 
     protected static WebAppContext findWAC(ServletContext context) {
         if (context instanceof ContextHandler.Context) {
             ContextHandler.Context sContext = (ContextHandler.Context) context;
             ContextHandler contextHandler = sContext.getContextHandler();
             Handler handler = contextHandler.getHandler();
             if (handler instanceof ServletHandler) {
                 ServletHandler servletHandler = (ServletHandler) handler;
                Server server = servletHandler.getServer();
                Handler serverHandler = server.getHandler();
                if (serverHandler instanceof HandlerCollection) {
                    HandlerCollection hc = (HandlerCollection) serverHandler;
                    for (Handler h : hc.getHandlers()) {
                        if (h instanceof WebAppContext) {
                            WebAppContext wac = (WebAppContext) h;
                            if (wac.getServletHandler() == servletHandler) {
                                return wac;
                            }
                        }
                    }
                }
            }
        }
        return null;
    }
New to GrepCode? Check out our FAQ X