import org.jgroups.blocks.ReplicatedHashtable
import org.jgroups.*
def channel =
new JChannel
()
channel.
connect("GridHashtableChannel")
def notifier =
[
entrySet:
{ key, value ->
println "entry set: $key $value" },
entryRemoved:
{ key ->
println "entry removed: $key $value" },
viewChange:
{ Vector prevMembers,
Vector newMembers ->
println "view change" },
contentsSet:
{ Map map ->
println "content set" },
contentsCleared:
{ ->
println "clear" }
] as ReplicatedHashtable.
Notification
def table =
new ReplicatedHashtable
(channel,
1000)
table.
addNotifier(notifier
)
for (i
in 0..
100) {
table
[i
]=i
sleep
1000
}
channel.
disconnect()
channel.
close()
It's nice to see how to use a Map coerced to an interface to avoid using anonymous inner classes.