class HttpSessionNotifier implements SessionNotifier {

  @Override
  public void attributeReplaced(RepositoryBackedSession session, String key, Object replacedValue) {
    if (session instanceof HttpSession && replacedValue instanceof HttpSessionBindingListener) {
      ((HttpSessionBindingListener)replacedValue).valueUnbound(new HttpSessionBindingEvent((HttpSession)session, key));
    }
    HttpSessionBindingEvent event = new HttpSessionBindingEvent((HttpSession)session, key, replacedValue);
    for (HttpSessionAttributeListener listener : descriptor.getHttpSessionAttributeListeners()) {
      listener.attributeReplaced(event);
    }
  }

    HttpSessionNotifier(ServletContextDescriptor descriptor);

}