From 4a48668cc28f3729e64ab22c7866ea9cf4f05d9f Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 6 Mar 2020 13:58:39 +0300 Subject: [PATCH] refactoring --- .../org/redisson/RedissonPriorityQueue.java | 17 +--------- .../java/org/redisson/RedissonSortedSet.java | 16 +--------- .../redisson/cache/LocalCacheListener.java | 8 ++--- .../redisson/RedissonPriorityQueueTest.java | 32 +++++++++++++++++++ 4 files changed, 38 insertions(+), 35 deletions(-) diff --git a/redisson/src/main/java/org/redisson/RedissonPriorityQueue.java b/redisson/src/main/java/org/redisson/RedissonPriorityQueue.java index a01992e53..e0e422c32 100644 --- a/redisson/src/main/java/org/redisson/RedissonPriorityQueue.java +++ b/redisson/src/main/java/org/redisson/RedissonPriorityQueue.java @@ -26,7 +26,6 @@ import org.redisson.misc.RedissonPromise; import java.io.ByteArrayOutputStream; import java.io.ObjectOutputStream; -import java.io.Serializable; import java.math.BigInteger; import java.security.MessageDigest; import java.util.*; @@ -41,20 +40,6 @@ import java.util.function.Supplier; */ public class RedissonPriorityQueue extends RedissonList implements RPriorityQueue { - private static class NaturalComparator implements Comparator, Serializable { - - private static final long serialVersionUID = 7207038068494060240L; - - static final NaturalComparator NATURAL_ORDER = new NaturalComparator(); - - public int compare(V c1, V c2) { - Comparable c1co = (Comparable) c1; - Comparable c2co = (Comparable) c2; - return c1co.compareTo(c2co); - } - - } - public static class BinarySearchResult { private V value; @@ -82,7 +67,7 @@ public class RedissonPriorityQueue extends RedissonList implements RPriori } - private Comparator comparator = NaturalComparator.NATURAL_ORDER; + private Comparator comparator = Comparator.naturalOrder(); CommandExecutor commandExecutor; diff --git a/redisson/src/main/java/org/redisson/RedissonSortedSet.java b/redisson/src/main/java/org/redisson/RedissonSortedSet.java index 13c09856f..17ab978bc 100644 --- a/redisson/src/main/java/org/redisson/RedissonSortedSet.java +++ b/redisson/src/main/java/org/redisson/RedissonSortedSet.java @@ -51,20 +51,6 @@ import io.netty.buffer.ByteBuf; */ public class RedissonSortedSet extends RedissonObject implements RSortedSet { - private static class NaturalComparator implements Comparator, Serializable { - - private static final long serialVersionUID = 7207038068494060240L; - - static final NaturalComparator NATURAL_ORDER = new NaturalComparator(); - - public int compare(V c1, V c2) { - Comparable c1co = (Comparable) c1; - Comparable c2co = (Comparable) c2; - return c1co.compareTo(c2co); - } - - } - public static class BinarySearchResult { private V value; @@ -92,7 +78,7 @@ public class RedissonSortedSet extends RedissonObject implements RSortedSet comparator = NaturalComparator.NATURAL_ORDER; + private Comparator comparator = Comparator.naturalOrder(); CommandExecutor commandExecutor; diff --git a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java index 991de9eff..4a2b2b689 100644 --- a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java +++ b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java @@ -115,13 +115,13 @@ public abstract class LocalCacheListener { } if (options.getEvictionPolicy() == EvictionPolicy.NONE) { - return new NoneCacheMap(options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); + return new NoneCacheMap<>(options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); } if (options.getEvictionPolicy() == EvictionPolicy.LRU) { - return new LRUCacheMap(options.getCacheSize(), options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); + return new LRUCacheMap<>(options.getCacheSize(), options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); } if (options.getEvictionPolicy() == EvictionPolicy.LFU) { - return new LFUCacheMap(options.getCacheSize(), options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); + return new LFUCacheMap<>(options.getCacheSize(), options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); } if (options.getEvictionPolicy() == EvictionPolicy.SOFT) { return ReferenceCacheMap.soft(options.getTimeToLiveInMillis(), options.getMaxIdleInMillis()); @@ -255,7 +255,6 @@ public abstract class LocalCacheListener { } RSemaphore semaphore = getClearSemaphore(id); - semaphore.expireAsync(60, TimeUnit.SECONDS); semaphore.tryAcquireAsync(res.intValue(), 50, TimeUnit.SECONDS).onComplete((r, ex) -> { if (ex != null) { result.tryFailure(ex); @@ -350,6 +349,7 @@ public abstract class LocalCacheListener { private RSemaphore getClearSemaphore(byte[] requestId) { String id = ByteBufUtil.hexDump(requestId); RSemaphore semaphore = new RedissonSemaphore(commandExecutor, name + ":clear:" + id); + semaphore.expireAsync(60, TimeUnit.SECONDS); return semaphore; } diff --git a/redisson/src/test/java/org/redisson/RedissonPriorityQueueTest.java b/redisson/src/test/java/org/redisson/RedissonPriorityQueueTest.java index 9a05d2887..1a0eb4e2f 100644 --- a/redisson/src/test/java/org/redisson/RedissonPriorityQueueTest.java +++ b/redisson/src/test/java/org/redisson/RedissonPriorityQueueTest.java @@ -2,6 +2,7 @@ package org.redisson; import static org.assertj.core.api.Assertions.assertThat; +import java.io.Serializable; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; @@ -14,6 +15,37 @@ import org.redisson.api.RPriorityQueue; public class RedissonPriorityQueueTest extends BaseTest { + public static class Entry implements Comparable, Serializable { + + private String key; + private Integer value; + + public Entry(String key, Integer value) { + this.key = key; + this.value = value; + } + + @Override + public int compareTo(Entry o) { + return key.compareTo(o.key); + } + + } + + @Test + public void testComparable() { + RPriorityQueue queue = redisson.getPriorityQueue("anyQueue"); + queue.add(new Entry("b", 1)); + queue.add(new Entry("c", 1)); + queue.add(new Entry("a", 1)); + + // Entry [a:1] + Entry e = queue.poll(); + assertThat(e.key).isEqualTo("a"); + Entry e1 = queue.poll(); + assertThat(e1.key).isEqualTo("b"); + } + @Test public void testPollLastAndOfferFirstTo() { RPriorityQueue queue1 = redisson.getPriorityQueue("deque1");