CAMEL-8602: Java 8: ConcurrentLinkedHashMap -> Caffeine

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1f48a57f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1f48a57f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1f48a57f

Branch: refs/heads/master
Commit: 1f48a57f1af4de79e3902c9b05ae4ab4f28b9e8f
Parents: 2292934
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Mar 31 11:24:08 2016 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Mar 31 11:30:59 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/LRUCache.java    | 23 +++++++++++---------
 .../org/apache/camel/util/LRUSoftCache.java     |  8 +++----
 .../org/apache/camel/util/LRUWeakCache.java     |  5 +++--
 3 files changed, 19 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1f48a57f/camel-core/src/main/java/org/apache/camel/util/LRUCache.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/LRUCache.java 
b/camel-core/src/main/java/org/apache/camel/util/LRUCache.java
index 4c18a31..dda974f 100644
--- a/camel-core/src/main/java/org/apache/camel/util/LRUCache.java
+++ b/camel-core/src/main/java/org/apache/camel/util/LRUCache.java
@@ -30,7 +30,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * A Least Recently Used Cache.
+ * A cache that uses a near optional LRU Cache.
+ * <p/>
+ * The Cache is implemented by Caffeine which provides an <a 
href="https://github.com/ben-manes/caffeine/wiki/Efficiency";>efficient 
cache</a>.
  * <p/>
  * If this cache stores {@link org.apache.camel.Service} then this 
implementation will on eviction
  * invoke the {@link org.apache.camel.Service#stop()} method, to auto-stop the 
service.
@@ -39,7 +41,6 @@ import org.slf4j.LoggerFactory;
  * @see LRUWeakCache
  */
 public class LRUCache<K, V> implements Map<K, V>, RemovalListener<K, V>, 
Serializable {
-    private static final long serialVersionUID = -342098639681884414L;
     private static final Logger LOG = LoggerFactory.getLogger(LRUCache.class);
 
     protected final AtomicLong hits = new AtomicLong();
@@ -190,14 +191,16 @@ public class LRUCache<K, V> implements Map<K, V>, 
RemovalListener<K, V>, Seriali
 
     @Override
     public void onRemoval(K key, V value, RemovalCause cause) {
-        evicted.incrementAndGet();
-        LOG.trace("onRemoval {} -> {}", key, value);
-        if (stopOnEviction) {
-            try {
-                // stop service as its evicted from cache
-                ServiceHelper.stopService(value);
-            } catch (Exception e) {
-                LOG.warn("Error stopping service: " + value + ". This 
exception will be ignored.", e);
+        if (cause.wasEvicted()) {
+            evicted.incrementAndGet();
+            LOG.trace("onRemoval {} -> {}", key, value);
+            if (stopOnEviction) {
+                try {
+                    // stop service as its evicted from cache
+                    ServiceHelper.stopService(value);
+                } catch (Exception e) {
+                    LOG.warn("Error stopping service: " + value + ". This 
exception will be ignored.", e);
+                }
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1f48a57f/camel-core/src/main/java/org/apache/camel/util/LRUSoftCache.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/LRUSoftCache.java 
b/camel-core/src/main/java/org/apache/camel/util/LRUSoftCache.java
index 6189026..4224d1d 100644
--- a/camel-core/src/main/java/org/apache/camel/util/LRUSoftCache.java
+++ b/camel-core/src/main/java/org/apache/camel/util/LRUSoftCache.java
@@ -16,10 +16,10 @@
  */
 package org.apache.camel.util;
 
-import java.lang.ref.SoftReference;
-
 /**
- * A Least Recently Used Cache which uses {@link SoftReference}.
+ * A cache that uses a near optional LRU Cache using {@link 
java.lang.ref.SoftReference}.
+ * <p/>
+ * The Cache is implemented by Caffeine which provides an <a 
href="https://github.com/ben-manes/caffeine/wiki/Efficiency";>efficient 
cache</a>.
  * <p/>
  * This implementation uses {@link java.lang.ref.SoftReference} for stored 
values in the cache, to support the JVM
  * when it wants to reclaim objects when it's running out of memory. Therefore 
this implementation does
@@ -50,8 +50,6 @@ import java.lang.ref.SoftReference;
  */
 public class LRUSoftCache<K, V> extends LRUCache<K, V> {
 
-    private static final long serialVersionUID = 1L;
-
     public LRUSoftCache(int maximumCacheSize) {
         this(16, maximumCacheSize);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1f48a57f/camel-core/src/main/java/org/apache/camel/util/LRUWeakCache.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/LRUWeakCache.java 
b/camel-core/src/main/java/org/apache/camel/util/LRUWeakCache.java
index 16d48f6..e624f44 100644
--- a/camel-core/src/main/java/org/apache/camel/util/LRUWeakCache.java
+++ b/camel-core/src/main/java/org/apache/camel/util/LRUWeakCache.java
@@ -17,7 +17,9 @@
 package org.apache.camel.util;
 
 /**
- * A Least Recently Used Cache which uses {@link java.lang.ref.WeakReference}.
+ * A cache that uses a near optional LRU Cache using {@link 
java.lang.ref.WeakReference}.
+ * <p/>
+ * The Cache is implemented by Caffeine which provides an <a 
href="https://github.com/ben-manes/caffeine/wiki/Efficiency";>efficient 
cache</a>.
  * <p/>
  * This implementation uses {@link java.lang.ref.WeakReference} for stored 
values in the cache, to support the JVM
  * when it wants to reclaim objects for example during garbage collection. 
Therefore this implementation does
@@ -47,7 +49,6 @@ package org.apache.camel.util;
  * @see LRUSoftCache
  */
 public class LRUWeakCache<K, V> extends LRUCache<K, V> {
-    private static final long serialVersionUID = 1L;
 
     public LRUWeakCache(int maximumCacheSize) {
         this(16, maximumCacheSize);

Reply via email to