Example #1
0
  /**
   * Update the history store with the value of an an read, write or execute operation. Also, the
   * timestamp of the insertion is recorded. Also, the recorded history values are added to the
   * given json value.
   *
   * @param pJmxReq request for which an entry should be added in this history store
   * @param pJson the JSONObject to which to add the history.
   */
  public synchronized void updateAndAdd(JmxRequest pJmxReq, JSONObject pJson) {
    long timestamp = System.currentTimeMillis() / 1000;
    pJson.put(KEY_TIMESTAMP, timestamp);

    JmxRequest.Type type = pJmxReq.getType();
    if (type == EXEC || type == WRITE) {
      HistoryEntry entry = historyStore.get(new HistoryKey(pJmxReq));
      if (entry != null) {
        synchronized (entry) {
          // A history data to json object for the response
          pJson.put(KEY_HISTORY, entry.jsonifyValues());

          // Update history for next time
          if (type == EXEC) {
            entry.add(pJson.get(KEY_VALUE), timestamp);
          } else if (type == WRITE) {
            // The new value to set as string representation
            entry.add(pJmxReq.getValue(), timestamp);
          }
        }
      }
    } else if (type == READ) {
      updateReadHistory(pJmxReq, pJson, timestamp);
    }
  }
Example #2
0
 private void addAttributeFromSingleValue(
     JSONObject pHistMap, String pAttrName, HistoryKey pKey, Object pValue, long pTimestamp) {
   HistoryEntry entry = getEntry(pKey, pValue, pTimestamp);
   if (entry != null) {
     synchronized (entry) {
       pHistMap.put(pAttrName, entry.jsonifyValues());
       entry.add(pValue, pTimestamp);
     }
   }
 }
Example #3
0
 private HistoryEntry getEntry(HistoryKey pKey, Object pValue, long pTimestamp) {
   HistoryEntry entry = historyStore.get(pKey);
   if (entry != null) {
     return entry;
   }
   // Now try all known patterns and add lazily the key
   for (HistoryKey key : patterns.keySet()) {
     if (key.matches(pKey)) {
       entry = new HistoryEntry(patterns.get(key));
       entry.add(pValue, pTimestamp);
       historyStore.put(pKey, entry);
       return entry;
     }
   }
   return null;
 }