GH-3660: Invoke well-known lambdas explicitly

Fixes https://github.com/spring-projects/spring-integration/pull/3660

* Change the `LambdaMessageProcessor` to invoke `Function`, `GenericHandler`,
`GenericSelector` & `GenericTransformer` explicitly without reflection.
This allows to avoid `--add-opens` for Java types to be used from reflections.
Plus this removes some overhead with native images.
And in general it is faster than reflection invocation.
This commit is contained in:
Artem Bilan
2022-09-07 14:06:13 -04:00
committed by Gary Russell
parent 1fbfad2d2a
commit f36181bc5a
2 changed files with 61 additions and 11 deletions

View File

@@ -23,7 +23,6 @@ import java.util.Date;
import java.util.Objects;
import java.util.function.Function;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.BeanFactory;
@@ -107,7 +106,6 @@ public class LambdaMessageProcessorTests {
@Test
@Disabled("Until https://github.com/spring-projects/spring-integration/issues/3660")
public void testCustomConverter() {
LambdaMessageProcessor lmp = new LambdaMessageProcessor(Function.identity(), TestPojo.class);
lmp.setBeanFactory(this.beanFactory);