Those pipes help assembling pipes, or modifying the resource streams readers or writers could create.
grep(conf)
)outputs the input resource if its matches its configuration
echo /content/foo | grep foo=bar integerProp=2 booleanOne=false
will outputs /content/foo
only if it has properties specified, you can revert the logic with ̀ slingPipesFilter_not` set to true
echo /content/foo | grep foo=bar @ with slingPipesFilter_not=true
will either return /content/foo
either nothing depending on it not containing @foo=bar
you can do more complex use case tackling direclty the "compiled" persistence of the pipe
sling:resourceType
is slingPipes/filter
conf
node tree that will be tested against the current input of the pipe, each /conf/sub@prop=value
will triggers a test on ./sub@prop
property of the current input, testing if its value matches value
regex. If the special slingPipesFilter_noChildren=${true}
property is there with the value instantiated as a true boolean, then filter will pass if corresponding node has no children.slingPipesFilter_test='${...}'
evaluates the property value, and filters out the stream if the expression is not a boolean or falseslingPipesFilter_not='true'
inverts the expected result of the filterPipes that litterally contains sub pipes, each super pipe share bindings with each others so data can be passed from one to another
ref <path>
)executes the pipe whose persistence is referenced in path property
ref /conf/pipes/aPipePersistence
will execute the pipe /conf/myPipes/aPipePersistence
if you add /conf/myPipes
to plumberImpl referencePaths
configuration, you can then execute
ref aPipePersistence
executes the pipe referenced in path property, passes input only if referenced pipe doesn't return any resource
sling:resourceType
is slingPipes/not
path
path of the referenced pipe
not /conf/pipes/aPipePersistence
or as for referenced pipe:
not aPipePersistence
allows parallel execution of the sub pipes listed in configuration
sling:resourceType
is slingPipes/manifold
conf
node contains child pipes' configurations, that will be configured in the order they are found (note you should use sling:OrderedFolder)queueSize
size of the merged resource queue, default is 10000numThread
thread pool size for the execution of the subpipes, default is 5 - resource output will be ordered randomly; setting it to 1 will guarantee serial execution with predictable output order (i.e. the first subpipe resources will be exhausted before the second subpipe resources are output etc.); setting numThreads to 1 will have similar effects to using a container pipe, with the notable exception of output termination: whereas a container pipe chains sub pipes and will stop when any subpipe produces no output, the manifold pipe handles subpipes as independent streams and combines their output regardless of any void subpipe outputexecutionTimeout
execution time out for each sub pipe; given in seconds; default is 24hassemble a simple sequence of pipes
sling:resourceType
is slingPipes/container
conf
node contains child pipes' configurations, that will be configured in the order they are found (note you should use sling:OrderedFolder)Note that pipe builder api automatically creates one for you to chain the subpipe you are configuring.