Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 package com.sun.enterprise.web;
 
 
 import java.io.*;
 import java.net.*;
 import java.util.*;
 
Facade object which masks the internal Context object from the web application.

Author(s):
Amy Roh
 
 public class ContextFacade extends WebModule {
         
     // ----------------------------------------------------------- Constructors
 
    
Construct a new instance of this class, associated with the specified Context instance.

Parameters:
docRoot
contextRoot
classLoader
 
     public ContextFacade(File docRootString contextRootClassLoader classLoader) {
         this. = docRoot;
         this. = contextRoot;
         this. = classLoader;
     }

     
The name of the deployed application
 
     private String appName = null;
 
     private SecurityConfig config = null;

    
Wrapped web module.
 
     private WebModule context = null;
 
     private File docRoot;
 
     private String contextRoot;
 
     private ClassLoader classLoader;
    private Map<StringStringfilters = new HashMap<StringString>();
    private Map<StringStringservletNameFilterMappings = new HashMap<StringString>();
    private Map<StringStringurlPatternFilterMappings = new HashMap<StringString>();
    private Map<StringStringservlets = new HashMap<StringString>();
    private Map<StringString[]> servletMappings = new HashMap<StringString[]>();
    protected ArrayList<StringlistenerNames = new ArrayList<String>();
    // ------------------------------------------------------------- Properties
    public String getAppName() {
        return  ;
    }
    public void setAppName(String name) {
         = name;
    }
    @Override
    public String getContextRoot() {
        return ;
    }
    public File getDocRoot() {
        return ;
    }
    // ------------------------------------------------- ServletContext Methods
    @Override
    public String getContextPath() {
        return .getContextPath();
    }
    @Override
    public ServletContext getContext(String uripath) {
        return .getContext(uripath);
    }
    @Override
    public int getMajorVersion() {
        return .getMajorVersion();
    }
    @Override
    public int getMinorVersion() {
        return .getMinorVersion();
    }
    @Override
    public int getEffectiveMajorVersion() {
        return .getEffectiveMajorVersion();
    }
    @Override
    public int getEffectiveMinorVersion() {
        return .getEffectiveMinorVersion();
    }
    @Override
    public String getMimeType(String file) {
        return .getMimeType(file);
    }
    @Override
    public Set<StringgetResourcePaths(String path) {
        return .getResourcePaths(path);
    }
    @Override
    public URL getResource(String path)
        throws MalformedURLException {
        return .getResource(path);
    }
    @Override
    public InputStream getResourceAsStream(String path) {
        return .getResourceAsStream(path);
    }
    @Override
    public RequestDispatcher getRequestDispatcher(final String path) {
        return .getRequestDispatcher(path);
    }
    @Override
        return .getNamedDispatcher(name);
    }
    @Override
    public Servlet getServlet(String name) {
        return .getServlet(name);
    }
    @Override
    public Enumeration<ServletgetServlets() {
        return .getServlets();
    }
    @Override
    public Enumeration<StringgetServletNames() {
        return .getServletNames();
    }
    @Override
    public void log(String msg) {
        .log(msg);
    }
    @Override
    public void log(Exception exceptionString msg) {
        .log(exceptionmsg);
    }
    @Override
    public void log(String messageThrowable throwable) {
        .log(messagethrowable);
    }
    @Override
    public String getRealPath(String path) {
        return .getRealPath(path);
    }
    @Override
    public String getServerInfo() {
        return .getServerInfo();
    }
    @Override
    public String getInitParameter(String name) {
        return .getInitParameter(name);
    }
    @Override
        return .getInitParameterNames();
    }
    @Override
    public boolean setInitParameter(String nameString value) {
        return .setInitParameter(namevalue);
    }
    @Override
    public Object getAttribute(String name) {
        return .getAttribute(name);
    }
    @Override
    public Enumeration<StringgetAttributeNames() {
        return .getAttributeNames();
    }
    @Override
    public void setAttribute(String nameObject object) {
        .setAttribute(nameobject);
    }
    @Override
    public void removeAttribute(String name) {
        .removeAttribute(name);
    }
    @Override
    public String getServletContextName() {
        return .getServletContextName();
    }

    
Returns previously added servlets
    public Map<StringStringgetAddedServlets() {
        return ;
    }
    @Override
            String servletNameString className) {
        if ( != null) {
            return .addServlet(servletNameclassName);
        } else {
            return addServletFacade(servletNameclassName);
        }
    }
    /*
    public Servlet findServlet(String name) {
        if (name == null)
            return (null);
        synchronized (servlets) {       // Required by post-start changes
            return servlets.get(name);
        }
    }*/
    public ServletRegistration.Dynamic addServletFacade(String servletName,
            String className) {
        if (servletName == null || className == null) {
            throw new NullPointerException("Null servlet instance or name");
        }
        DynamicServletRegistrationImpl regis =
                (DynamicServletRegistrationImpl)
                        .get(servletName);
        if (regis == null) {
            StandardWrapper wrapper = new StandardWrapper();
            wrapper.setName(servletName);
            wrapper.setServletClassName(className);
            regis = (DynamicServletRegistrationImpl)
                    createDynamicServletRegistrationImpl(wrapper);
            DynamicServletRegistrationImpl tmpRegis =
                    (DynamicServletRegistrationImpl)
                            .putIfAbsent(servletNameregis);
            if (tmpRegis != null) {
                regis = tmpRegis;
            }
            .put(servletNameclassName);
        }
        return regis;
    }
    public Map<StringString[]> getServletMappings() {
        return ;
    }
            StandardWrapper wrapper) {
        return new ServletRegistrationImpl(wrapperthis);
    }
            StandardWrapper wrapper) {
        return new DynamicServletRegistrationImpl(wrapperthis);
    }
    public ServletRegistration.Dynamic addServlet(String servletName,
            Class <? extends ServletservletClass) {
        if ( != null) {
            return .addServlet(servletNameservletClass);
        } else {
            return addServletFacade(servletNameservletClass.getName());
        }
    }
            String servletNameServlet servlet) {
        if ( != null) {
            return .addServlet(servletNameservlet);
        } else {
            return addServletFacade(servletNameservlet.getClass().getName());
        }
    }
    @Override
    public Set<StringaddServletMapping(String name,
                                         String[] urlPatterns) {
        .put(nameurlPatterns);
        return .keySet();
    }
    public <T extends Servlet> T createServlet(Class<T> clazz)
            throws ServletException {
        if ( != null) {
            return .createServlet(clazz);
        } else {
            try {
                return createServletInstance(clazz);
            } catch (Throwable t) {
                throw new ServletException("Unable to create Servlet from " +
                        "class " + clazz.getName(), t);
            }
        }
    }
    public ServletRegistration getServletRegistration(String servletName) {
        return .get(servletName);
    }
    public Map<String, ? extends ServletRegistrationgetServletRegistrations() {
        return .getServletRegistrations();
    }
    public Map<StringStringgetAddedFilters() {
        return ;
    }
        return ;
    }
        return ;
    }
            String filterNameString className) {
        DynamicFilterRegistrationImpl regis =
                (DynamicFilterRegistrationImpl.get(
                        filterName);
        FilterDef filterDef = null;
        if (null == regis) {
            filterDef = new FilterDef();
        } else {
            filterDef = regis.getFilterDefinition();
        }
        filterDef.setFilterName(filterName);
        filterDef.setFilterClassName(className);
        regis = new DynamicFilterRegistrationImpl(filterDefthis);
        .put(filterDef.getFilterName(), regis);
        .put(filterNameclassName);
        return regis;
    }
    @Override
            String filterNameString className) {
        if ( != null) {
            return .addFilter(filterNameclassName);
        } else {
            return addFilterFacade(filterNameclassName);
        }
    }
    @Override
    public void addFilterMap(FilterMap filterMapboolean isMatchAfter) {
        if (filterMap.getServletName() != null) {
            .put(filterMap.getFilterName(), filterMap.getServletName());
        } else if (filterMap.getURLPattern() != null) {
            .put(filterMap.getFilterName(), filterMap.getURLPattern());
        }
    }
            String filterNameFilter filter) {
        if ( != null) {
            return .addFilter(filterNamefilter);
        } else {
            return addFilterFacade(filterNamefilter.getClass().getName());
        }
    }
    public FilterRegistration.Dynamic addFilter(String filterName,
            Class <? extends FilterfilterClass) {
        if ( != null) {
            return .addFilter(filterNamefilterClass);
        } else {
            return addFilterFacade(filterNamefilterClass.getName());
        }
    }
    public <T extends Filter> T createFilter(Class<T> clazz)
            throws ServletException {
        if ( != null) {
            return .createFilter(clazz);
        } else {
            try {
                return createFilterInstance(clazz);
            } catch (Throwable t) {
                throw new ServletException("Unable to create Filter from " +
                        "class " + clazz.getName(), t);
            }
        }
    }
    public FilterRegistration getFilterRegistration(String filterName) {
        return .get(filterName);
    }
    public Map<String, ? extends FilterRegistrationgetFilterRegistrations() {
        return .getFilterRegistrations();
    }
    public SessionCookieConfig getSessionCookieConfig() {        
        return .getSessionCookieConfig();
    }
    
    public void setSessionTrackingModes(Set<SessionTrackingModesessionTrackingModes) {
        .setSessionTrackingModes(sessionTrackingModes);
    }
        return .getDefaultSessionTrackingModes();
    }
        return .getEffectiveSessionTrackingModes();
    }
    public void addListener(String className) {
        if ( != null) {
            .addListener(className);
        } else {
            .add(className);
        }
    }
    public List<StringgetListeners() {
        return ;
    }
    public <T extends EventListenervoid addListener(T t) {
        if ( != null) {
            .addListener(t);
        } else {
            .add(t.getClass().getName());
        }
    }
    public void addListener(Class <? extends EventListenerlistenerClass) {
        if ( != null) {
            .addListener(listenerClass);
        } else {
            .add(listenerClass.getName());
        }
    }
    public <T extends EventListener> T createListener(Class<T> clazz)
            throws ServletException {
        if ( != null) {
            return .createListener(clazz);
        } else {
            if (!ServletContextListener.class.isAssignableFrom(clazz) &&
                    !ServletContextAttributeListener.class.isAssignableFrom(clazz) &&
                    !ServletRequestListener.class.isAssignableFrom(clazz) &&
                    !ServletRequestAttributeListener.class.isAssignableFrom(clazz) &&
                    !HttpSessionListener.class.isAssignableFrom(clazz) &&
                    !HttpSessionAttributeListener.class.isAssignableFrom(clazz) &&
                    !HttpSessionIdListener.class.isAssignableFrom(clazz)) {
                throw new IllegalArgumentException(.getString(
                        "standardContext.invalidListenerType"clazz.getName()));
            }
            try {
                return createListenerInstance(clazz);
            } catch (Throwable t) {
                throw new ServletException(t);
            }
        }
    }
        return .getJspConfigDescriptor();
    }
    public ClassLoader getClassLoader() {
        if ( != null) {
            return ;
        } else if ( != null) {
            return .getClassLoader();
        } else {
            return null;
        }
    }
    public void declareRoles(String... roleNames) {
        .declareRoles(roleNames);
    }
    public String getPath() {
        return .getPath();
    }
    public void setPath(String path) {
        .setPath(path);
    }
    public String getDefaultWebXml() {
        return .getDefaultWebXml();
    }
    public void setDefaultWebXml(String defaultWebXml) {
        .setDefaultWebXml(defaultWebXml);
    }

    
Gets the underlying StandardContext to which this ContextFacade is ultimately delegating.

Returns:
The underlying StandardContext
    public WebModule getUnwrappedContext() {
        return ;
    }
    public void setUnwrappedContext(WebModule wm) {
         = wm;
    }
    // --------------------------------------------------------- embedded Methods

    
Enables or disables directory listings on this Context.
    public void setDirectoryListing(boolean directoryListing) {
        .setDirectoryListing(directoryListing);
    }
    public boolean isDirectoryListing() {
        return .isDirectoryListing();
    }

    
Set the security related configuration for this context
    public void setSecurityConfig(SecurityConfig config) {
        this. = config;
        if (config == null) {
            return;
        } else if ( != null) {
            .setSecurityConfig(config);
        }
    }

    
Gets the security related configuration for this context
    public SecurityConfig getSecurityConfig() {
        return ;
    }