/** Called by agents to report config changes */
  private NullLatherValue cmdTrackConfigChange(TrackSend_args args) throws LatherRemoteException {
    TrackEventReport report = args.getEvents();

    TrackEvent[] events = report.getEvents();

    if (events.length > 0) {
      ArrayList<ConfigChangedEvent> ccEvents = new ArrayList<ConfigChangedEvent>(events.length);
      final boolean debug = log.isDebugEnabled();
      for (TrackEvent event : events) {
        // Create a ConfigChangedEvent to send
        if (debug) log.debug("TrackEvent: " + event);
        ConfigChangedEvent cce = new ConfigChangedEvent(event);
        ccEvents.add(cce);
      }

      sendTopicMessage(EventConstants.EVENTS_TOPIC, ccEvents);
    }

    return new NullLatherValue();
  }
  /** Called by agents to report log statements */
  private NullLatherValue cmdTrackLogMessage(TrackSend_args args) throws LatherRemoteException {
    TrackEventReport report = args.getEvents();

    TrackEvent[] events = report.getEvents();

    if (events.length > 0) {
      ArrayList<ResourceLogEvent> logEvents = new ArrayList<ResourceLogEvent>(events.length);

      for (TrackEvent event : events) {
        // Create a ResourceLogEvent to send
        log.debug("TrackEvent: " + event);
        ResourceLogEvent rle = new ResourceLogEvent(event);
        logEvents.add(rle);
      }

      sendTopicMessage(EventConstants.EVENTS_TOPIC, logEvents);
    }

    return new NullLatherValue();
  }