File tree Expand file tree Collapse file tree 5 files changed +36
-2
lines changed
main/java/org/casbin/watcher
test/java/org/casbin/test Expand file tree Collapse file tree 5 files changed +36
-2
lines changed Original file line number Diff line number Diff line change 2121 <artifactId >slf4j-api</artifactId >
2222 <version >${slf4j.version} </version >
2323 </dependency >
24+ <dependency >
25+ <groupId >org.slf4j</groupId >
26+ <artifactId >slf4j-simple</artifactId >
27+ <version >${slf4j.version} </version >
28+ </dependency >
2429 <dependency >
2530 <groupId >org.casbin</groupId >
2631 <artifactId >jcasbin</artifactId >
27- <version >1.6 .3</version >
32+ <version >1.13 .3</version >
2833 </dependency >
2934
3035 <dependency >
Original file line number Diff line number Diff line change 66import redis .clients .jedis .JedisPoolConfig ;
77
88import java .util .UUID ;
9+ import java .util .function .Consumer ;
910
1011public class RedisWatcher implements Watcher {
1112 private Runnable updateCallback ;
@@ -27,6 +28,11 @@ public void setUpdateCallback(Runnable runnable) {
2728 subThread .setUpdateCallback (runnable );
2829 }
2930
31+ @ Override
32+ public void setUpdateCallback (Consumer <String > consumer ) {
33+ subThread .setUpdateCallback (consumer );
34+ }
35+
3036 @ Override
3137 public void update () {
3238 try (Jedis jedis = jedisPool .getResource ()) {
Original file line number Diff line number Diff line change 33import redis .clients .jedis .Jedis ;
44import redis .clients .jedis .JedisPool ;
55
6+ import java .util .function .Consumer ;
7+
68public class SubThread extends Thread {
79 private final JedisPool jedisPool ;
810 private final Subscriber subscriber ;
@@ -18,6 +20,10 @@ public void setUpdateCallback(Runnable runnable){
1820 subscriber .setUpdateCallback (runnable );
1921 }
2022
23+ public void setUpdateCallback (Consumer <String > consumer ) {
24+ subscriber .setUpdateCallback (consumer );
25+ }
26+
2127 @ Override
2228 public void run () {
2329 try (Jedis jedis = jedisPool .getResource ()) {
Original file line number Diff line number Diff line change 22
33import redis .clients .jedis .JedisPubSub ;
44
5+ import java .util .function .Consumer ;
6+
57public class Subscriber extends JedisPubSub {
68 private Runnable runnable ;
9+ private Consumer <String > consumer ;
710
811 public Subscriber (Runnable updateCallback ) {
912 this .runnable = updateCallback ;
@@ -13,7 +16,13 @@ public void setUpdateCallback(Runnable runnable){
1316 this .runnable = runnable ;
1417 }
1518
19+ public void setUpdateCallback (Consumer <String > consumer ) {
20+ this .consumer = consumer ;
21+ }
22+
1623 public void onMessage (String channel , String message ) {
1724 runnable .run ();
25+ if (consumer != null )
26+ consumer .accept ("Channel: " + channel + " Message: " + message );
1827 }
1928}
Original file line number Diff line number Diff line change @@ -12,7 +12,6 @@ public class RedisWatcherTest {
1212 private RedisWatcher redisWatcher ;
1313 private final String expect ="update msg" ;
1414
15-
1615 @ Before
1716 public void initWatcher (){
1817 String redisTopic = "jcasbin-topic" ;
@@ -30,4 +29,13 @@ public void testUpdate() throws InterruptedException {
3029 Thread .sleep (100 );
3130 Assert .assertEquals (expect , expect );
3231 }
32+
33+ @ Test
34+ public void testConsumerCallback () throws InterruptedException {
35+ redisWatcher .setUpdateCallback ((s ) -> {
36+ System .out .print (s );
37+ });
38+ redisWatcher .update ();
39+ Thread .sleep (100 );
40+ }
3341}
You can’t perform that action at this time.
0 commit comments