From a974aa0cfb827476104c140096de676711d2b673 Mon Sep 17 00:00:00 2001 From: Pamela Dragosh Date: Tue, 14 Feb 2017 19:31:53 -0500 Subject: Initial OpenECOMP policy/common commit Change-Id: I61cd29d6d8bf8702c1a66915895b519bf3484afa Signed-off-by: Pamela Dragosh --- .../common/logging/eelf/EventTrackInfoHandler.java | 109 +++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 common-logging/src/main/java/org/openecomp/policy/common/logging/eelf/EventTrackInfoHandler.java (limited to 'common-logging/src/main/java/org/openecomp/policy/common/logging/eelf/EventTrackInfoHandler.java') diff --git a/common-logging/src/main/java/org/openecomp/policy/common/logging/eelf/EventTrackInfoHandler.java b/common-logging/src/main/java/org/openecomp/policy/common/logging/eelf/EventTrackInfoHandler.java new file mode 100644 index 00000000..a947ed01 --- /dev/null +++ b/common-logging/src/main/java/org/openecomp/policy/common/logging/eelf/EventTrackInfoHandler.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * ECOMP-Logging + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.policy.common.logging.eelf; + +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Timer; +import java.util.TimerTask; + +/** + * + * EventTrackInfoHandler is the handler of clean up all expired event objcts + * + */ +public class EventTrackInfoHandler extends TimerTask { + + String className = this.getClass().getSimpleName(); + + @Override + public void run() { + + PolicyLogger.info(className + + " Release expired event records start..."); + + CleanUp(); + + PolicyLogger.info(className + " Release expired event records done"); + } + + /** + * Removes all expired event objects from the ConcurrentHashMap of EventData + */ + private void CleanUp() { + + if (PolicyLogger.getEventTracker() == null + || PolicyLogger.getEventTracker().getEventInfo() == null + || PolicyLogger.getEventTracker().getEventInfo().isEmpty()) { + return; + } + + Instant startTime = null; + long ns = 0; + + ArrayList expiredEvents = null; + + for (String key: PolicyLogger.getEventTracker().getEventInfo().keySet()) { + EventData event = PolicyLogger.getEventTracker().getEventInfo().get(key); + startTime = event.getStartTime(); + ns = Duration.between(startTime, Instant.now()).getSeconds(); + + PolicyLogger.info(className + + " duration time : " + ns); + + PolicyLogger.info(className + + " PolicyLogger.EXPIRED_TIME : " + PolicyLogger.EXPIRED_TIME); + + // if longer than EXPIRED_TIME, remove the object + + if (ns > PolicyLogger.EXPIRED_TIME){ + if (expiredEvents == null) { + expiredEvents = new ArrayList(); + } + expiredEvents.add(key); + + PolicyLogger.info(className + + " add expired event request ID: " + + event.getRequestID()); + } + } + + synchronized (PolicyLogger.getEventTracker().getEventInfo()) { + if (expiredEvents != null) { + for (String expiredKey : expiredEvents) { + PolicyLogger.getEventTracker().getEventInfo() + .remove(expiredKey); + System.out.println(className + + " removed expired event request ID: " + + expiredKey); + PolicyLogger.info(className + + " removed expired event request ID: " + + expiredKey); + } + } + + } + + } + +} -- cgit 1.2.3-korg