class AbstractThreadedObservablePlugin extends AbstractObservablePlugin {

  @Override
  public final void addObserver(final ObservablePlugin.PluginObserver observer) {
    super.addObserver(observer);
    if (countObservers() == 1) {
      if (logger.isDebugEnabled()) {
        logger.debug("Start monitoring the plugin {}", this.getName());
      }
      thread = new EventThread(this.getName());
      thread.start();
    }
  }

  protected  AbstractThreadedObservablePlugin(String name);

}