docs: @SuppressWarnings("deprecation")
      @Override
      public ExtensionProcessor createExtensionProcessor(IServletContext iServletContext) throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "WAB createExtensionProcessor", iServletContext.getContextPath());
          Map<String, WABPathSpecificItemHolder> knownPaths = this.knownPaths;
          if (knownPaths != null) {
              //get the known wabs for this path
              WABPathSpecificItemHolder holder;
              synchronized (knownPaths) {
                  holder = knownPaths.get(iServletContext.getContextPath());
              }
              if (holder != null) {
                  Collection<WAB> wabs = holder.getWABs();
                  WAB wab = null;
                  synchronized (holder) {
                      //we might have a long list
                      for (WAB w : wabs) {
                          switch (w.getState()) {
                              case DEPLOYING:
                              case DEPLOYED:
                                  wab = w;
                                  break;
                              default:
                                  break;
                          }
                      }
                  }
                  if (wab != null) {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          Tr.debug(tc, "Found WAB matching context path", iServletContext.getContextPath());
                      BundleContext wabBC = wab.getBundle().getBundleContext();
                      //Register the BundleContext as an attribute on the ServletContext
                      iServletContext.setAttribute("osgi-bundlecontext", wabBC);
                      // For Spring DM based applications register BundleContext under attribute that
                      // org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext looks for.
                      iServletContext.setAttribute("org.springframework.osgi.web." + BundleContext.class.getName(), wabBC);
                      //add the OSGi directory protection filter
                      //Add dynamic filter to prevent access to OSGI-INF and OSGI-OPT
                      ExtendedServletContext esc = iServletContext;
                      IFilterConfig fc = esc.getFilterConfig("com.ibm.ws.app.manager.wab.internal.WABInstaller.OSGIDENYCONFIG"); //name is just a unique string.
                      fc.setDescription("Filter protecting OSGI-INF and OSGI-OPT resources");
                      fc.setName("com.ibm.ws.app.manager.wab.internal.OsgiDirectoryProtectionFilter"); // DO NOT ALLOW TO BE NULL!! (will break WAS)
                      fc.setFilterClassLoader(this.getClass().getClassLoader());
                      fc.setFilterClassName(OsgiDirectoryProtectionFilter.class.getName()); //The new filter class..
                      fc.setDisplayName("OSGI Directory protection filter");
                      fc.setDispatchMode(new int[] { IFilterConfig.FILTER_ERROR, IFilterConfig.FILTER_FORWARD, IFilterConfig.FILTER_INCLUDE, IFilterConfig.FILTER_REQUEST });
                      fc.setAsyncSupported(true); //Added so that the filter can support Async servlet functionality.  It doesn't affect behaviour for Sync Servlets.
                      esc.addMappingFilter("/*", fc);
                      //iServletContext.addFilter("/*", new OsgiDirectoryProtectionFilter());
                      //Register the ServletContext in the service registry
                      wab.registerServletContext(iServletContext);
                  }
                  return null;
              } else {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "No WABS matching context path", iServletContext.getContextPath());
                      Tr.debug(tc, "Known WAB context paths", knownPaths);
                  }
                  return null;
              }
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Not initialized with knownPaths");
              }
              return null;
          }
      }