log = CSMART.createLogger(this.getClass().getName());
  public void setupSubscriptions() {    log = CSMART.createLogger(this.getClass().getName());    if (log.isDebugEnabled()) {      log.debug(" entering setupSubscriptions");    }    // parse the "template" rules from our configuration info    try {      parseTemplateRules();    } catch (Exception e) {      // unable to configure!      if (log.isDebugEnabled()) {        log.debug(" configuration error: "+e.getMessage());      }      return;    }    //    // subscribe to the creation of LocalAssets we allocate to.  A PlugIn    //   creates the assets, so we must wait one execution cycle to    //   see any Assets.    //    localAssetSub = (IncrementalSubscription)subscribe(localAssetP);    //    // subscribe to the creation of org Assets we allocate to.  A PlugIn    //   creates the assets, then sends them via tasks, so they come later    // and may dribble in    //    entitySub = (IncrementalSubscription)subscribe(entityP);    //    // subscribe to Tasks we Allocate, based upon the "text" value    //   defined in the rules.  For now let's group all our tasks     //   together into one subscription.    //    taskSub = (IncrementalSubscription)subscribe(createTaskP());    //    // subscribe to Allocations.  This is the typical feedback     //   channel for allocations.  We should assume that multiple    //   Allocators might be loaded.    //    allocationSub = (IncrementalSubscription)subscribe(createAllocationP());    //    // subscribe to DeadlineTimerEvents.  Allocator should generate    //   these "wakeup" events to catch allocations take too long (say     //   expected + 100 cycles).    //    deadlineSub = (IncrementalSubscription)subscribe(createDeadlineP());    if (log.isDebugEnabled()) {      log.debug(" waiting for Tasks");    }  } // end of setupSubscriptions