Class PluginServletContextWrapper

java.lang.Object
com.atlassian.plugin.servlet.PluginServletContextWrapper
All Implemented Interfaces:
javax.servlet.ServletContext

public class PluginServletContextWrapper extends Object implements javax.servlet.ServletContext
A wrapper around servlet context that allows plugin servlets to add attributes which will not be shared/clobbered by other plugins.
  • Constructor Details

  • Method Details

    • getAttribute

      public Object getAttribute(String name)
      Gets the named attribute. The attribute is first looked for in the local attribute map, if it is not found there it is looked for in the wrapped contexts attribute map. If it is not there, null is returned.

      A consequence of this ordering is that servlets may, in their own context, override but not overwrite attributes from the wrapped context.

      Specified by:
      getAttribute in interface javax.servlet.ServletContext
    • getAttributeNames

      public Enumeration<String> getAttributeNames()
      Specified by:
      getAttributeNames in interface javax.servlet.ServletContext
      Returns:
      an enumeration of all the attributes from the wrapped context as well as the local attributes.
    • removeAttribute

      public void removeAttribute(String name)
      Removes an attribute from the local context. Leaves the wrapped context completely untouched.
      Specified by:
      removeAttribute in interface javax.servlet.ServletContext
    • setAttribute

      public void setAttribute(String name, Object object)
      Sets an attribute in the local attribute map, leaving the wrapped context untouched.

      Servlets may use this and the lookup ordering of the getAttribute() method to effectively override the value of an attribute in the wrapped servlet context with their own value and this overridden value will only be seen in the plugins own scope.

      Specified by:
      setAttribute in interface javax.servlet.ServletContext
    • getInitParameter

      public String getInitParameter(String name)
      Specified by:
      getInitParameter in interface javax.servlet.ServletContext
      Returns:
      the init parameter from the servlet module descriptor.
    • getInitParameterNames

      public Enumeration<String> getInitParameterNames()
      Specified by:
      getInitParameterNames in interface javax.servlet.ServletContext
      Returns:
      an enumeration of the init parameters from the servlet module descriptor.
    • getResource

      public URL getResource(String path) throws MalformedURLException
      Specified by:
      getResource in interface javax.servlet.ServletContext
      Returns:
      the resource from the plugin classloader if it exists, otherwise the resource is looked up from the wrapped context and returned
      Throws:
      MalformedURLException
    • getResourceAsStream

      public InputStream getResourceAsStream(String path)
      Specified by:
      getResourceAsStream in interface javax.servlet.ServletContext
      Returns:
      the resource stream from the plugin classloader if it exists, otherwise the resource stream is attempted to be retrieved from the wrapped context
    • getContext

      public javax.servlet.ServletContext getContext(String uripath)
      Specified by:
      getContext in interface javax.servlet.ServletContext
      Returns:
      null so that servlet plugins can't escape their box
    • getContextPath

      public String getContextPath()
      Specified by:
      getContextPath in interface javax.servlet.ServletContext
    • getMajorVersion

      public int getMajorVersion()
      Specified by:
      getMajorVersion in interface javax.servlet.ServletContext
    • getMimeType

      public String getMimeType(String file)
      Specified by:
      getMimeType in interface javax.servlet.ServletContext
    • getMinorVersion

      public int getMinorVersion()
      Specified by:
      getMinorVersion in interface javax.servlet.ServletContext
    • getNamedDispatcher

      public javax.servlet.RequestDispatcher getNamedDispatcher(String name)
      Specified by:
      getNamedDispatcher in interface javax.servlet.ServletContext
    • getRealPath

      public String getRealPath(String path)
      Specified by:
      getRealPath in interface javax.servlet.ServletContext
    • getRequestDispatcher

      public javax.servlet.RequestDispatcher getRequestDispatcher(String path)
      Specified by:
      getRequestDispatcher in interface javax.servlet.ServletContext
    • getResourcePaths

      public Set<String> getResourcePaths(String arg0)
      Specified by:
      getResourcePaths in interface javax.servlet.ServletContext
    • getServerInfo

      public String getServerInfo()
      Specified by:
      getServerInfo in interface javax.servlet.ServletContext
    • getServlet

      public javax.servlet.Servlet getServlet(String name) throws javax.servlet.ServletException
      Specified by:
      getServlet in interface javax.servlet.ServletContext
      Throws:
      javax.servlet.ServletException
    • getServletContextName

      public String getServletContextName()
      Specified by:
      getServletContextName in interface javax.servlet.ServletContext
    • getServletNames

      public Enumeration<String> getServletNames()
      Specified by:
      getServletNames in interface javax.servlet.ServletContext
    • getServlets

      public Enumeration<javax.servlet.Servlet> getServlets()
      Specified by:
      getServlets in interface javax.servlet.ServletContext
    • log

      public void log(Exception exception, String msg)
      Specified by:
      log in interface javax.servlet.ServletContext
    • log

      public void log(String message, Throwable throwable)
      Specified by:
      log in interface javax.servlet.ServletContext
    • log

      public void log(String msg)
      Specified by:
      log in interface javax.servlet.ServletContext
    • setInitParameter

      public boolean setInitParameter(String name, String value)
      Specified by:
      setInitParameter in interface javax.servlet.ServletContext
    • getEffectiveMajorVersion

      public int getEffectiveMajorVersion()
      Specified by:
      getEffectiveMajorVersion in interface javax.servlet.ServletContext
    • getEffectiveMinorVersion

      public int getEffectiveMinorVersion()
      Specified by:
      getEffectiveMinorVersion in interface javax.servlet.ServletContext
    • getSessionCookieConfig

      public javax.servlet.SessionCookieConfig getSessionCookieConfig()
      Specified by:
      getSessionCookieConfig in interface javax.servlet.ServletContext
    • setSessionTrackingModes

      public void setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
      Specified by:
      setSessionTrackingModes in interface javax.servlet.ServletContext
    • getDefaultSessionTrackingModes

      public Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
      Specified by:
      getDefaultSessionTrackingModes in interface javax.servlet.ServletContext
    • getEffectiveSessionTrackingModes

      public Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
      Specified by:
      getEffectiveSessionTrackingModes in interface javax.servlet.ServletContext
    • getJspConfigDescriptor

      public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
      Specified by:
      getJspConfigDescriptor in interface javax.servlet.ServletContext
    • getClassLoader

      public ClassLoader getClassLoader()
      Specified by:
      getClassLoader in interface javax.servlet.ServletContext
    • declareRoles

      public void declareRoles(String... roleNames)
      Specified by:
      declareRoles in interface javax.servlet.ServletContext
    • addServlet

      public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className)
      Specified by:
      addServlet in interface javax.servlet.ServletContext
    • addServlet

      public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, javax.servlet.Servlet servlet)
      Specified by:
      addServlet in interface javax.servlet.ServletContext
    • addServlet

      public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends javax.servlet.Servlet> servletClass)
      Specified by:
      addServlet in interface javax.servlet.ServletContext
    • addJspFile

      public javax.servlet.ServletRegistration.Dynamic addJspFile(String s, String s1)
      Specified by:
      addJspFile in interface javax.servlet.ServletContext
    • createServlet

      public <T extends javax.servlet.Servlet> T createServlet(Class<T> clazz)
      Specified by:
      createServlet in interface javax.servlet.ServletContext
    • getServletRegistration

      public javax.servlet.ServletRegistration getServletRegistration(String servletName)
      Specified by:
      getServletRegistration in interface javax.servlet.ServletContext
    • getServletRegistrations

      public Map<String,? extends javax.servlet.ServletRegistration> getServletRegistrations()
      Specified by:
      getServletRegistrations in interface javax.servlet.ServletContext
    • addFilter

      public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
      Specified by:
      addFilter in interface javax.servlet.ServletContext
    • addFilter

      public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter)
      Specified by:
      addFilter in interface javax.servlet.ServletContext
    • addFilter

      public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends javax.servlet.Filter> filterClass)
      Specified by:
      addFilter in interface javax.servlet.ServletContext
    • createFilter

      public <T extends javax.servlet.Filter> T createFilter(Class<T> clazz)
      Specified by:
      createFilter in interface javax.servlet.ServletContext
    • getFilterRegistration

      public javax.servlet.FilterRegistration getFilterRegistration(String filterName)
      Specified by:
      getFilterRegistration in interface javax.servlet.ServletContext
    • getFilterRegistrations

      public Map<String,? extends javax.servlet.FilterRegistration> getFilterRegistrations()
      Specified by:
      getFilterRegistrations in interface javax.servlet.ServletContext
    • addListener

      public void addListener(String className)
      Specified by:
      addListener in interface javax.servlet.ServletContext
    • addListener

      public <T extends EventListener> void addListener(T t)
      Specified by:
      addListener in interface javax.servlet.ServletContext
    • addListener

      public void addListener(Class<? extends EventListener> listenerClass)
      Specified by:
      addListener in interface javax.servlet.ServletContext
    • createListener

      public <T extends EventListener> T createListener(Class<T> clazz)
      Specified by:
      createListener in interface javax.servlet.ServletContext
    • getVirtualServerName

      public String getVirtualServerName()
      Specified by:
      getVirtualServerName in interface javax.servlet.ServletContext
    • getSessionTimeout

      public int getSessionTimeout()
      Specified by:
      getSessionTimeout in interface javax.servlet.ServletContext
    • setSessionTimeout

      public void setSessionTimeout(int i)
      Specified by:
      setSessionTimeout in interface javax.servlet.ServletContext
    • getRequestCharacterEncoding

      public String getRequestCharacterEncoding()
      Specified by:
      getRequestCharacterEncoding in interface javax.servlet.ServletContext
    • setRequestCharacterEncoding

      public void setRequestCharacterEncoding(String s)
      Specified by:
      setRequestCharacterEncoding in interface javax.servlet.ServletContext
    • getResponseCharacterEncoding

      public String getResponseCharacterEncoding()
      Specified by:
      getResponseCharacterEncoding in interface javax.servlet.ServletContext
    • setResponseCharacterEncoding

      public void setResponseCharacterEncoding(String s)
      Specified by:
      setResponseCharacterEncoding in interface javax.servlet.ServletContext