public void startup() {

    if (this.shutdown) {
      throw new NlsIllegalStateException();
    }
    synchronized (this) {
      if (this.active) {
        return;
      }
      LOG.info("starting " + getThreadName() + "...");
      Thread thread = new Thread(this);
      thread.setName(getThreadName());
      this.executor.execute(thread); // NOSONAR
      this.active = true;
    }
  }
public void startup ( ) { if ( this . shutdown ) { throw new NlsIllegalStateException ( ) ; } synchronized ( this ) { if ( this . active ) { return ; } LOG . info ( "starting " + getThreadName ( ) + "..." ) ; Thread thread = new Thread ( this ) ; thread . setName ( getThreadName ( ) ) ; this . executor . execute ( thread ) ; this . active = true ; } }
This method will initialize and startup this refresher. On the first call of this method a new thread will be
started, that periodically performs a refresh. <br>
Multiple calls of this method have no further effect unless the refresher is {@link #close() closed}. <br>
<b>NOTE:</b><br>
This is intentionally NOT performed automatically via
{@link net.sf.mmm.util.component.base.AbstractComponent#initialize()} so the startup only happens if explicitly
required and not accidently because this component if found and managed by some container.