Related to https://stackoverflow.com/questions/72163534/spring-batch-integration-throwns-org-springframework-messaging-messagehandlingex
The `FunctionTypeUtils.isMessage()` fails with NPE
when target method has non-message argument with generic parameter.
Even if we instantiate the class with specific generic argument,
that info is not available for reflection and `MethodParameter`
end up with a generic parameter name which is essentially a `TypeVariable`
The stacktrace is like this:
```
java.lang.NullPointerException: Cannot invoke "java.lang.Class.getGenericInterfaces()" because "targetType" is null
at net.jodah.typetools.TypeResolver.getTypeVariableMap(TypeResolver.java:494)
at net.jodah.typetools.TypeResolver.resolveRawClass(TypeResolver.java:387)
at net.jodah.typetools.TypeResolver.resolveRawClass(TypeResolver.java:373)
at org.springframework.cloud.function.context.catalog.FunctionTypeUtils.isMessage(FunctionTypeUtils.java:416)
```
- Allow custom AvroSchemaServiceManager to be used
- Make AvroSchemaMessageConverter bean method specifically typed
- Make CloudEventsMessageConverter bean method specifically typed
- Add tests focusing on the conditional loading aspects of the auto configuration
Fixes gh-797
Resolves#814
* Add `BeanFactoryAwareFunctionRegistryTests.testWrappedWithAroundAdviseNotMessageReturnConfiguration()`
to verify that non-Message return from the target function is wrapped to the `Message` before return
to the `FunctionAroundWrapper`
Currently, the `FunctionAroundWrapper` set `targetFunction.setSkipOutputConversion(true);`
which is not what expected by the `TraceFunctionAroundWrapper`.
This one has a logic based on the `Message` as an output from the target function
and its headers to correlate tracing headers.
* Remove the `setSkipOutputConversion(true)` from the `FunctionAroundWrapper`
to satisfy `TraceFunctionAroundWrapper` expectation - we cannot enforce
all the end-user function to always return a `Message<?>` for us.
* Some other refactoring in the `FunctionAroundWrapper` for cleaner code
**Cherry-pick to `3.2.x`**