@Override public void merge(WebFragment webFragment, WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (Filter srcFilter : webFragment.getFilter()) { String filterName = srcFilter.getFilterName(); Filter targetFilter = (Filter) mergeContext.getAttribute(createFilterKey(filterName)); if (targetFilter == null) { webApp.getFilter().add(srcFilter); mergeContext.setAttribute(createFilterKey(filterName), srcFilter); for (SubMergeHandler<Filter, Filter> subMergeHandler : subMergeHandlers) { subMergeHandler.add(srcFilter, mergeContext); } } else { for (SubMergeHandler<Filter, Filter> subMergeHandler : subMergeHandlers) { subMergeHandler.merge(srcFilter, targetFilter, mergeContext); } } } }