aboutsummaryrefslogtreecommitdiffstats
path: root/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
diff options
context:
space:
mode:
authorInstrumental <jonathan.gathman@att.com>2018-11-07 20:52:15 -0600
committerInstrumental <jonathan.gathman@att.com>2018-11-07 20:52:27 -0600
commit5aa8aec689a399e7803e84e531532d0c61631ec1 (patch)
treea5297d6d21b940b9411609331973909e1f6869e4 /sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
parente9c0bf259db0084592536e896cc449b5cf34b84f (diff)
Fix/Renable sidecar builds
Issue-ID: AAF-613 Change-Id: Ic13411eebbf3c1c9b6d8492aff1b37db37a965e4 Signed-off-by: Instrumental <jonathan.gathman@att.com>
Diffstat (limited to 'sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java')
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java116
1 files changed, 0 insertions, 116 deletions
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
deleted file mode 100644
index 44ce0cd..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.onap.aaf.fproxy.cache;
-
-import java.lang.ref.SoftReference;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.DelayQueue;
-import java.util.concurrent.Delayed;
-import java.util.concurrent.TimeUnit;
-import org.onap.aaf.fproxy.data.CredentialCacheData;
-
-public class InMemoryCredentialCache implements CredentialCache {
-
- private final ConcurrentHashMap<String, SoftReference<CredentialCacheData>> cache = new ConcurrentHashMap<>();
- private final DelayQueue<DelayedCacheObject> cleaningUpQueue = new DelayQueue<>();
-
- public InMemoryCredentialCache() {
- Thread cleanerThread = new Thread(() -> {
- while (!Thread.currentThread().isInterrupted()) {
- try {
- DelayedCacheObject delayedCacheObject = cleaningUpQueue.take();
- cache.remove(delayedCacheObject.getKey(), delayedCacheObject.getReference());
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- });
- cleanerThread.setDaemon(true);
- cleanerThread.start();
- }
-
- @Override
- public void add(String key, CredentialCacheData value, long periodInMillis) {
- if (key == null) {
- return;
- }
- if (value == null) {
- cache.remove(key);
- } else {
- long expiryTime = System.currentTimeMillis() + periodInMillis;
- SoftReference<CredentialCacheData> reference = new SoftReference<>(value);
- cache.put(key, reference);
- cleaningUpQueue.put(new DelayedCacheObject(key, reference, expiryTime));
- }
- }
-
- @Override
- public void remove(String key) {
- cache.remove(key);
- }
-
- @Override
- public CredentialCacheData get(String key) {
- return Optional.ofNullable(cache.get(key)).map(SoftReference::get).orElse(null);
- }
-
- @Override
- public void clear() {
- cache.clear();
- }
-
- @Override
- public long size() {
- return cache.size();
- }
-
- private static class DelayedCacheObject implements Delayed {
-
- private final String key;
- private final SoftReference<CredentialCacheData> reference;
- private final long expiryTime;
-
- public DelayedCacheObject(String key, SoftReference<CredentialCacheData> reference, long expiryTime) {
- super();
- this.key = key;
- this.reference = reference;
- this.expiryTime = expiryTime;
- }
-
- @Override
- public long getDelay(TimeUnit unit) {
- return unit.convert(expiryTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
- }
-
- @Override
- public int compareTo(Delayed o) {
- return Long.compare(expiryTime, ((DelayedCacheObject) o).expiryTime);
- }
-
- public String getKey() {
- return key;
- }
-
- public SoftReference<CredentialCacheData> getReference() {
- return reference;
- }
- }
-}