@Override
  public void contextInitialized(final ServletContextEvent servletContextEvent) {
    Stopwatchs.start("Context Initialized");

    super.contextInitialized(servletContextEvent);

    Skins.loadSkin();

    final LatkeBeanManager beanManager = Lifecycle.getBeanManager();

    // Register event listeners
    final EventManager eventManager = beanManager.getReference(EventManager.class);
    eventManager.registerListener(new ArticleSender());
    eventManager.registerListener(new ArticleUpdater());
    eventManager.registerListener(new CommentSender());

    final CommentNotifier commentNotifier = beanManager.getReference(CommentNotifier.class);
    eventManager.registerListener(commentNotifier);

    final ArticleNotifier articleNotifier = beanManager.getReference(ArticleNotifier.class);
    eventManager.registerListener(articleNotifier);

    LOGGER.info("Initialized the context");

    Stopwatchs.end();
    LOGGER.log(
        Level.DEBUG,
        "Stopwatch: {0}{1}",
        new Object[] {Strings.LINE_SEPARATOR, Stopwatchs.getTimingStat()});
    Stopwatchs.release();
  }
 @Override
 public void requestDestroyed(final ServletRequestEvent servletRequestEvent) {
   super.requestDestroyed(servletRequestEvent);
   Stopwatchs.release();
 }