Files
stream-applications/functions/function/filter-function
Artem Bilan a91aa2cd3f GH-110: Fix filter function for emitting null (#111)
* GH-110: Fix filter function for emitting `null`

Fixes https://github.com/spring-cloud/stream-applications/issues/110

Turns out when functions are composed in the Spring Cloud Stream environment,
they are called via reactive wrappers which don't allow to emit `null` from the
`map()` operator.

* Make `filterFunction` fully reactive to reply on the `Flux.filter()` operator
* Add `config-common` for auto-conversion string configuration options into `Expression` instances
* Add `spring-boot-starter-json` dependency since it is required by the `SpelExpressionConverterConfiguration`
* Add `reactor-test` dependency to test the final solution
* Remove redundant dependencies from the `filter-processor`

* * Add `proxyBeanMethods = false` into `FilterFunctionConfiguration`
* Fix default expression to `true` instead of `payload`, which does not fit to filter logic
* Fix JavaDoc for `expression` property
* Remove redundant `application.properties` from the `filter-function`
2020-08-28 15:55:08 -04:00
..

# Filter Function

This module provides a filter function that can be reused and composed in other applications.

## Beans for injection

You can import the `FilterFunctionConfiguration` in a Spring Boot application and then inject the following bean.

`filterFunction`

You can use `filterFunction` as a qualifier when injecting.

Once injected, you can use the `apply` method of the `Function` to invoke it and get the result.

## Configuration Options

All configuration properties are prefixed with `filter.function`.

For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/filter/FilterFunctionProperties.java[FilterFunctionProperties.java]

## Examples

See this link:src/test/java/org/springframework/cloud/fn/filter/FilterFunctionApplicationTests.java[test suite] for examples of how this function is used.

## Other usage

See this link:../../../applications/processor/filter-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application.