Removing, deprecating and replacing usage of black/whitelist (#29254)
This commit is contained in:
parent
25ea7b7f5e
commit
1e9e984727
23 changed files with 168 additions and 144 deletions
|
|
@ -34,33 +34,33 @@ class StatefulMapConcat {
|
|||
// #zip-with-index
|
||||
}
|
||||
|
||||
def blacklist(): Unit = {
|
||||
// #blacklist
|
||||
val fruitsAndBlacklistCommands = Source(
|
||||
"banana" :: "pear" :: "orange" :: "blacklist:banana" :: "banana" :: "pear" :: "banana" :: Nil)
|
||||
def denylist(): Unit = {
|
||||
// #denylist
|
||||
val fruitsAndDeniedCommands = Source(
|
||||
"banana" :: "pear" :: "orange" :: "deny:banana" :: "banana" :: "pear" :: "banana" :: Nil)
|
||||
|
||||
val blacklistingFlow = Flow[String].statefulMapConcat { () =>
|
||||
var blacklist = Set.empty[String]
|
||||
val denyFilterFlow = Flow[String].statefulMapConcat { () =>
|
||||
var denyList = Set.empty[String]
|
||||
|
||||
{ element =>
|
||||
if (element.startsWith("blacklist:")) {
|
||||
blacklist += element.drop(10)
|
||||
Nil // no element downstream when adding a blacklisted keyword
|
||||
} else if (blacklist(element)) {
|
||||
Nil // no element downstream if element is blacklisted
|
||||
if (element.startsWith("deny:")) {
|
||||
denyList += element.drop(10)
|
||||
Nil // no element downstream when adding a deny listed keyword
|
||||
} else if (denyList(element)) {
|
||||
Nil // no element downstream if element is deny listed
|
||||
} else {
|
||||
element :: Nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fruitsAndBlacklistCommands.via(blacklistingFlow).runForeach(println)
|
||||
fruitsAndDeniedCommands.via(denyFilterFlow).runForeach(println)
|
||||
// prints
|
||||
// banana
|
||||
// pear
|
||||
// orange
|
||||
// pear
|
||||
// #blacklist
|
||||
// #denylist
|
||||
}
|
||||
|
||||
def reactOnEnd(): Unit = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue