in winegrower-extension/winegrower-servlet/src/main/java/org/apache/winegrower/servlet/service/ServletHttpServiceDeployer.java [63:100]
public void onStartup(final Set<Class<?>> c, final ServletContext servletContext) {
if (getClass() == ServletHttpServiceDeployer.class &&
is(servletContext, "winegrower.servlet.ripener.skip", false)) {
return;
}
final Ripener.Configuration configuration = createConfiguration(servletContext);
final Ripener.Impl ripener = new Ripener.Impl(configuration);
onRipenerCreated(ripener);
if (is(servletContext, "winegrower.servlet.services.http.register", true)) {
final ServletHttpService service = new ServletHttpService(servletContext);
ripener.registerBuiltInService(HttpService.class, service, new Hashtable<>());
final BundleContext rootBundle = ripener.getRegistry().getBundles().get(0L).getBundle().getBundleContext();
Stream.of(Servlet.class, HttpServlet.class).forEach(base -> registerServletTracker(service, rootBundle, base));
registerFilterTracker(service, rootBundle);
Stream.of(
ServletContextListener.class, ServletContextAttributeListener.class,
HttpSessionListener.class, HttpSessionAttributeListener.class,
HttpSessionActivationListener.class, HttpSessionBindingListener.class,
HttpSessionIdListener.class,
ServletRequestListener.class, ServletRequestAttributeListener.class)
.forEach(base -> registerListenerTracker(service, rootBundle, base));
}
servletContext.setAttribute(Ripener.class.getName(), ripener.start());
onRipenerStarted(ripener);
servletContext.addListener(new ServletContextListener() {
@Override
public void contextDestroyed(final ServletContextEvent sce) {
ofNullable(sce.getServletContext().getAttribute(Ripener.class.getName()))
.map(Ripener.class::cast)
.map(it -> {
onRipenerWillStop(it);
return it;
})
.ifPresent(Ripener::stop);
}
});
}