@Override
 public void destroy() {
   super.destroy();
   ContainerLifecycleListener listener = containerListener;
   if (listener != null) {
     listener.onShutdown(this);
   }
 }
 @Override
 public void reload(ResourceConfig configuration) {
   try {
     containerListener.onShutdown(this);
     webComponent = new WebComponent(webComponent.webConfig, configuration);
     containerListener = ConfigHelper.getContainerLifecycleListener(webComponent.appHandler);
     containerListener.onReload(this);
     containerListener.onStartup(this);
   } catch (ServletException ex) {
     logger.log(Level.SEVERE, "Reload failed", ex);
   }
 }
 /**
  * Initiate the Web component.
  *
  * @param webConfig the Web configuration.
  * @throws javax.servlet.ServletException in case of an initialization failure
  */
 protected void init(WebConfig webConfig) throws ServletException {
   webComponent = new WebComponent(webConfig, resourceConfig);
   containerListener = ConfigHelper.getContainerLifecycleListener(webComponent.appHandler);
   containerListener.onStartup(this);
 }