protected void removeInterceptorWhichIsOutThePhases(List<Interceptor<? extends Message>> interceptors, String[] phaseNames, Set<String> needToBeKept) {
for (Interceptor i : interceptors) {
boolean outside = false;
if (i instanceof PhaseInterceptor) {
PhaseInterceptor p = (PhaseInterceptor) i;
for (String phaseName : phaseNames) {
if (p.getPhase().equals(phaseName)) {
outside = true;
break;
}
}
if (!outside) {
// To support the old API
if (needToBeKept == null) {
getLogger().info("removing the interceptor " + p);
interceptors.remove(p);
} else if (!needToBeKept.contains(p.getClass().getName())) {
getLogger().info("removing the interceptor " + p);
interceptors.remove(p);
}
}
}