* Add `spring-cloud-function-integration` into `spring-cloud-function-dependencies`
* Fix "memoize" logic in the `FunctionLookupHelper` and cover it in the `FunctionFlowTests`
against `@SpyBean FunctionCatalog`
Spring Integration Java DSL, is a tool to compose integration flows programmatically.
We can build the flow not only based on standard EIP components, but also using
protocol-specific channel adapters.
Any generic services also can be used as handler in the flow.
This includes simple lambda operations or functions.
On the other hand Spring Cloud Function provides a `FunctionCatalog`
for registered functions and their compositions & conversions.
With this change we introduce a more high-level DSL to use functions
from catalog directly in the `IntegrationFlow` to gain the best from
both worlds.
* Introduce `spring-cloud-function-integration` module based on
`spring-cloud-function-context` and `spring-boot-starter-integration`
* Expose a `FunctionFlowBuilder` auto-configuration
* Add `FunctionFlowDefinition` to expose `apply()` and `accept()` operators
* Document this new module
Add `META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports` and `META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports`
Introduce auto-fallback to routing function if more then one function is present and no definition is provided.
Add explicit routing sample
Add documentation
This approach simplifies the existing request handlers while also fixing the invocation model to ensure AC is not created multiple times and ExecutionContext is properly propagated via Message headers
The old request handlers are deprecated
Documentation updates as well as tests
Resolves#437
This is the current statement
>SpEL evaluation context’s root object is the actual input argument, so in he case of Message<?> you can construct expression that has access to both payload and headers (e.g., spring.cloud.function.routing-expression=headers.function_name).
This is the corrected one
>SpEL evaluation context’s root object is the actual input argument, so in the case of Message<?> you can construct expression that has access to both payload and headers (e.g., spring.cloud.function.routing-expression=headers.function_name).
```diff
-so in he case...
+so in the case...
```