minor, allow only clearCache for non-static listeners

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

Branch: refs/heads/ranger
Commit: c297f466ed2fbf850a4b44e68cee51f04b7c2545
Parents: 309c872
Author: lidongsjtu <lid...@apache.org>
Authored: Tue Sep 5 20:39:10 2017 +0800
Committer: Hongbin Ma <m...@kyligence.io>
Committed: Wed Sep 6 10:57:36 2017 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/cube/CubeDescManager.java  |  5 ---
 .../java/org/apache/kylin/cube/CubeManager.java |  5 ---
 .../apache/kylin/dict/DictionaryManager.java    |  5 ---
 .../kylin/job/execution/ExecutableManager.java  |  5 ---
 .../apache/kylin/metadata/MetadataManager.java  |  5 ---
 .../badquery/BadQueryHistoryManager.java        |  5 ---
 .../kylin/metadata/cachesync/Broadcaster.java   | 22 ++++++++++---
 .../kylin/metadata/draft/DraftManager.java      |  5 ---
 .../kylin/metadata/project/ProjectManager.java  |  5 ---
 .../realization/RealizationRegistry.java        |  4 ---
 .../metadata/cachesync/BroadcasterTest.java     | 33 +++++++++++++++++---
 .../kylin/storage/hybrid/HybridManager.java     |  8 ++---
 12 files changed, 48 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java 
b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
index 6635366..b1ac6e6 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
@@ -94,11 +94,6 @@ public class CubeDescManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java 
b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index 043993c..f6de446 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -124,11 +124,6 @@ public class CubeManager implements IRealizationProvider {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git 
a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java 
b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index 857ee30..1628f4e 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -83,11 +83,6 @@ public class DictionaryManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java
----------------------------------------------------------------------
diff --git 
a/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java 
b/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java
index 0439ddd..bab8c30 100644
--- 
a/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java
+++ 
b/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableManager.java
@@ -83,11 +83,6 @@ public class ExecutableManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     private static ExecutablePO parse(AbstractExecutable executable) {
         ExecutablePO result = new ExecutablePO();
         result.setName(executable.getName());

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
index b8141fe..bfc7f08 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
@@ -115,11 +115,6 @@ public class MetadataManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManager.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManager.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManager.java
index d7cd425..c7eb133 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManager.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManager.java
@@ -72,11 +72,6 @@ public class BadQueryHistoryManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     private ResourceStore getStore() {
         return ResourceStore.getStore(this.kylinConfig);
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java
index 26e6f49..00b8857 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java
@@ -163,11 +163,11 @@ public class Broadcaster {
     public void registerStaticListener(Listener listener, String... entities) {
         doRegisterListener(staticListenerMap, listener, entities);
     }
-    
+
     public void registerListener(Listener listener, String... entities) {
         doRegisterListener(listenerMap, listener, entities);
     }
-    
+
     private static void doRegisterListener(Map<String, List<Listener>> lmap, 
Listener listener, String... entities) {
         synchronized (lmap) {
             // ignore re-registration
@@ -208,14 +208,26 @@ public class Broadcaster {
     }
 
     public void notifyListener(String entity, Event event, String cacheKey) 
throws IOException {
+        notifyListener(entity, event, cacheKey, true);
+    }
+
+    public void notifyNonStaticListener(String entity, Event event, String 
cacheKey) throws IOException {
+        notifyListener(entity, event, cacheKey, false);
+    }
+
+    private void notifyListener(String entity, Event event, String cacheKey, 
boolean includeStatic) throws IOException {
         // prevents concurrent modification exception
         List<Listener> list = Lists.newArrayList();
         List<Listener> l1 = listenerMap.get(entity); // normal listeners first
         if (l1 != null)
             list.addAll(l1);
-        List<Listener> l2 = staticListenerMap.get(entity); // static listeners 
second
-        if (l2 != null)
-            list.addAll(l2);
+
+        if (includeStatic) {
+            List<Listener> l2 = staticListenerMap.get(entity); // static 
listeners second
+            if (l2 != null)
+                list.addAll(l2);
+        }
+
         if (list.isEmpty())
             return;
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/draft/DraftManager.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/draft/DraftManager.java 
b/core-metadata/src/main/java/org/apache/kylin/metadata/draft/DraftManager.java
index bf3c3c3..56ee251 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/draft/DraftManager.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/draft/DraftManager.java
@@ -72,11 +72,6 @@ public class DraftManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
index df5450c..bbbca4f 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
@@ -86,11 +86,6 @@ public class ProjectManager {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
 
b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
index 2ae4fa1..2d1a4a5 100644
--- 
a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
+++ 
b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
@@ -68,10 +68,6 @@ public class RealizationRegistry {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private Map<RealizationType, IRealizationProvider> providers;

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-metadata/src/test/java/org/apache/kylin/metadata/cachesync/BroadcasterTest.java
----------------------------------------------------------------------
diff --git 
a/core-metadata/src/test/java/org/apache/kylin/metadata/cachesync/BroadcasterTest.java
 
b/core-metadata/src/test/java/org/apache/kylin/metadata/cachesync/BroadcasterTest.java
index 88cf404..80f26f9 100644
--- 
a/core-metadata/src/test/java/org/apache/kylin/metadata/cachesync/BroadcasterTest.java
+++ 
b/core-metadata/src/test/java/org/apache/kylin/metadata/cachesync/BroadcasterTest.java
@@ -40,7 +40,7 @@ public class BroadcasterTest extends 
LocalFileMetadataTestCase {
     public void after() throws Exception {
         this.cleanupTestMetadata();
     }
-    
+
     @Test
     public void testBasics() throws IOException {
         Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig());
@@ -53,7 +53,7 @@ public class BroadcasterTest extends 
LocalFileMetadataTestCase {
                 Assert.assertEquals(2, i.incrementAndGet());
             }
         }, "test");
-        
+
         broadcaster.registerListener(new Listener() {
             @Override
             public void onEntityChange(Broadcaster broadcaster, String entity, 
Event event, String cacheKey)
@@ -61,10 +61,35 @@ public class BroadcasterTest extends 
LocalFileMetadataTestCase {
                 Assert.assertEquals(1, i.incrementAndGet());
             }
         }, "test");
-        
+
         broadcaster.notifyListener("test", Event.UPDATE, "");
-        
+
         Broadcaster.staticListenerMap.clear();
     }
 
+    @Test
+    public void testNotifyNonStatic() throws IOException {
+        Broadcaster broadcaster = Broadcaster.getInstance(getTestConfig());
+        final AtomicInteger i = new AtomicInteger(0);
+
+        broadcaster.registerStaticListener(new Listener() {
+            @Override
+            public void onEntityChange(Broadcaster broadcaster, String entity, 
Event event, String cacheKey)
+                    throws IOException {
+                throw new IllegalStateException("Should not notify static 
listener.");
+            }
+        }, "test");
+
+        broadcaster.registerListener(new Listener() {
+            @Override
+            public void onEntityChange(Broadcaster broadcaster, String entity, 
Event event, String cacheKey)
+                    throws IOException {
+                Assert.assertEquals(1, i.incrementAndGet());
+            }
+        }, "test");
+
+        broadcaster.notifyNonStaticListener("test", Event.UPDATE, "");
+
+        Broadcaster.staticListenerMap.clear();
+    }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/c297f466/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java 
b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
index 114f2c7..2b1c2cc 100644
--- 
a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
+++ 
b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
@@ -41,6 +40,8 @@ import org.apache.kylin.metadata.realization.RealizationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.collect.Lists;
+
 /**
  */
 public class HybridManager implements IRealizationProvider {
@@ -79,11 +80,6 @@ public class HybridManager implements IRealizationProvider {
         CACHE.clear();
     }
 
-    public static void clearCache(KylinConfig kylinConfig) {
-        if (kylinConfig != null)
-            CACHE.remove(kylinConfig);
-    }
-
     // 
============================================================================
 
     private KylinConfig config;

Reply via email to