@Override
 public void update(
     EventBean[] newData,
     EventBean[] oldData,
     EPStatement statement,
     EPServiceProvider epServiceProvider) {
   if (newData != null) {
     for (int i = 0; i < newData.length; i++) {
       try {
         EventObject anEvent = new EventObject();
         try {
           Map<?, ?> aMap = (HashMap<?, ?>) newData[i].getUnderlying();
           anEvent = new EventObject(aMap);
         } catch (Exception e) {
           for (String name : newData[i].getEventType().getPropertyNames()) {
             try {
               anEvent.put(name, newData[i].get(name));
             } catch (PropertyAccessException e1) {
               dsLog.error(e1.getMessage(), e1);
             } catch (JSONException e1) {
               dsLog.error(e1.getMessage(), e1);
             }
           }
         }
         ts = System.currentTimeMillis();
         anEvent.put("_query_id", queryID);
         anEvent.put("_N_ts", ts);
         anEvent.setEventName(queryID);
         anEvent.put("_N_id", machineID);
         anEvent.put("_N_query_id", queryID);
         try {
           publisher.publish(anEvent);
         } catch (IOException e) {
           dsLog.error(e.getMessage(), e);
         }
       } catch (JSONException e) {
         dsLog.error(e.getMessage(), e);
       }
     }
   }
 }