@Override
  public void load() {
    super.load();

    // we want the servlet service, but it's loaded after the MTS.
    // Also, we want the agent's proxy to the node-level
    // ServletService. The blackboard is loaded late enough, so we
    // wait 'til then...
    if (sb.hasService(BlackboardService.class)) {
      registerServlet();
    } else {
      ServiceAvailableListener sal =
          new ServiceAvailableListener() {
            public void serviceAvailable(ServiceAvailableEvent ae) {
              Class<?> cl = ae.getService();
              if (BlackboardService.class.isAssignableFrom(cl)) {
                registerServlet();
              }
            }
          };
      sb.addServiceListener(sal);
    }
  }
 public void resume() throws StateModelException {
   super.resume();
   threadingModel.resume();
 }
 public void suspend() throws StateModelException {
   super.suspend();
   threadingModel.suspend();
 }
 public void start() throws StateModelException {
   super.start();
   startThreadingModel();
 }
 public void load() throws StateModelException {
   if (getBlackboardService() == null)
     System.err.println("Warning: Could not get Blackboard service " + this);
   super.load();
   load(null);
 }
 /** Component Model <em>AND</em> GenericStateModel initialization * */
 public void initialize() {
   super.initialize(); // uninitialized->unloaded (defined in GSMAdapter)
 }