docs: private FilterConfig processFilterConfig(DeploymentDescriptor webDD, Filter filter) {
  
          String filterName = filter.getFilterName();
          Map<String, ConfigItem<FilterConfig>> filterMap = configurator.getConfigItemMap("filter");
          ConfigItem<FilterConfig> existedFilter = filterMap.get(filterName);
  
          FilterConfig filterConfig = null;
          if (existedFilter == null) {
              String id = webDD.getIdForComponent(filter);
              if (id == null) {
                  id = "FilterGeneratedId" + configurator.generateUniqueId();
              }
              filterConfig = webAppConfiguration.createFilterConfig(id, filterName);
  
              configureTargetConfig(filterConfig, filter.getFilterClass(), "Filter", filter);
  
              webAppConfiguration.addFilterInfo(filterConfig);
  
              filterMap.put(filterName, createConfigItem(filterConfig));
          } else {
              filterConfig = existedFilter.getValue();
          }
  
          configureInitParams(filterConfig, filter.getInitParams(), "filter");
  
          if (filter.isSetAsyncSupported()) {
              configureAsyncSupported(filterConfig, filter.isAsyncSupported(), "filter");
          }
          return filterConfig;
      }