Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2010, Red Hat, Inc., and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
  * http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.jboss.weld.environment.jetty;
 
 
 import  javax.servlet.ServletContext;
 
Jetty 7.2+, 8.x and 9.x container.

Author(s):
Ales Justin
 
 public class JettyContainer extends AbstractJettyContainer {
 
     public static Container INSTANCE = new JettyContainer();
 
     private static final String JETTY_SERVERNAME = "jetty";
 
     private static final String JETTY_REQUIRED_CLASS_NAME = "org.eclipse.jetty.servlet.ServletHandler";
 
     private static final int MAJOR_VERSION = 7;
     private static final int MINOR_VERSION = 2;
 
     protected String classToCheck() {
         // This is not used anyway - server implementation classes are hidden from the web application in Jetty by default
         // Instead ServletContext.getServerInfo() is parsed
         return ;
     }
 
     public boolean touch(ContainerContext contextthrows Exception {
         ServletContext sc = context.getServletContext();
         String si = sc.getServerInfo();
         ..debugv("Parsing server info: {0}"si);
         if(!si.contains()) {
             return false;
         }
         int p = si.indexOf("/");
         if (p < 0) {
             return false;
         }
         String version = si.substring(p + 1);
         String[] split = version.split("\\.");
         int major = parseVersion(split[0]);
         int minor = parseVersion(split[1]);
         return (major >  || (major ==  & minor >= ));
     }
 
     public void initialize(ContainerContext context) {
         // Try pushing a Jetty Injector into the servlet context
         try {
             Class<?> clazz = Reflections.classForName(JettyWeldInjector.class.getName());
             Object injector = clazz.getConstructor(WeldManager.class).newInstance(context.getManager());
             context.getServletContext().setAttribute(injector);
 
             Class<?> decoratorClass = Reflections.classForName("org.jboss.weld.environment.jetty.WeldDecorator");
             Method processMethod = decoratorClass.getMethod("process", ServletContext.class);
             processMethod.invoke(nullcontext.getServletContext());
 
             if(..equals(context.getServletContext().getAttribute(.))) {
                 // ServletContainerInitializer works on versions prior to 9.1.1 but the listener injection doesn't
                 ..jettyDetectedListenersInjectionIsSupported();
             } else {
             }
         } catch (Exception e) {
             ..unableToCreateJettyWeldInjector(e);
         }
     }
 
     private int parseVersion(String version) {
         try {
             return Integer.parseInt(version);
         } catch (NumberFormatException e) {
             ..debugv("Unable to parse version string: {0}"version);
             return -1;
         }
    }
New to GrepCode? Check out our FAQ X