docs: public static ServletContext wrap(final ServletContext pContext, final Object[] pDelegates, final ClassLoader pLoader) {
          ClassLoader cl = pLoader != null ? pLoader : Thread.currentThread().getContextClassLoader();
  
          // TODO: Create a "static" mapping between methods in the ServletContext
          // and the corresponding delegate
  
          // TODO: Resolve super-invokations, to delegate to next delegate in
          // chain, and finally invoke pContext  
  
          return (ServletContext) Proxy.newProxyInstance(cl, new Class[] {ServletContext.class}, new InvocationHandler() {
              public Object invoke(Object pProxy, Method pMethod, Object[] pArgs) throws Throwable {
                  // TODO: Test if any of the delegates should receive, if so invoke
  
                  // Else, invoke on original object
                  return pMethod.invoke(pContext, pArgs);
              }
          });
      }