Commons Chain
  1. Commons Chain
  2. CHAIN-47

WebContext, ServletWebContext should be interfaces.

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0, 1.1, 1.2
    • Fix Version/s: 2.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      n/a

      Description

      WebContext should not be an abstract class. ServletWebContext should not be a concrete class.

      Different applications may want to have different base implementations of context but still have WebContext methods. A perfect example is in Struts 1.3: WebActionContext and ServletActionContext duplicate many of the methods in their chain equivalents without adhering to a common interface.

      I use the classes below in my application. Most Commons projects do not use the "IXxxx" interface naming convention but I had no choice here.

      public interface IWebContext extends Context
      {
      public Map getApplicationScope();

      public Map<String, String> getHeader();

      public Map<String, String[]> getHeaderValues();

      public Map<String, String> getInitParam();

      public Map<String, String> getParam();

      public Map<String, String[]> getParamValues();

      public Map getRequestScope();

      public Map getSessionScope();
      }

      public interface IServletWebContext extends IWebContext
      {
      public ServletContext getContext();

      public Map<String, Cookie> getCookies();

      public Cookie deleteCookie( final String cookieName );

      public HttpServletRequest getRequest();

      public HttpServletResponse getResponse();
      }

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            ori
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development