in src/main/java/org/apache/sling/engine/impl/filter/ServletFilterManager.java [192:227]
private void initFilter(final ServiceReference<Filter> reference, final Filter filter) {
final String filterName = SlingFilterConfig.getName(reference);
final Long serviceId = (Long) reference.getProperty(Constants.SERVICE_ID);
try {
MBeanReg reg;
try {
final Dictionary<String, String> mbeanProps = new Hashtable<String, String>();
mbeanProps.put(JMX_OBJECTNAME, "org.apache.sling:type=engine-filter,service=" + filterName);
reg = new MBeanReg();
reg.mbean = new FilterProcessorMBeanImpl();
reg.registration = reference
.getBundle()
.getBundleContext()
.registerService(FilterProcessorMBean.class, reg.mbean, mbeanProps);
mbeanMap.put(serviceId, reg);
} catch (Throwable t) {
log.debug("Unable to register mbean", t);
reg = null;
}
// initialize the filter first
final FilterConfig config = new SlingFilterConfig(servletContext, reference, filterName);
filter.init(config);
// add to chains
addFilterToChains(filter, reference);
} catch (ServletException ce) {
log.error("Filter " + filterName + " failed to initialize", ce);
} catch (Throwable t) {
log.error("Unexpected problem initializing filter " + filterName, t);
}
}