Some Java DSL improvements
* Register `BeanDefinition`s for DSL components. That way we get a gain when the `BeanDefinition` is involved, e.g. Spring Cloud Function uses this approach to determine the generics of the target `Function` class * This programmatic `BeanDefinition` registration approach (available since SF-5.0) allows us to avoid some manual lifecycle processes: bean initialization, autowiring, event listener registration etc. * Rework `IntegrationFlowContext` to register and remove `BeanDefinition`s as well * Remove unused `registerComponents` flag from the `StandardIntegrationFlow`. With the proper logic in the `IntegrationFlowContext` it does not make sense any more * Remove redundant `AnnotationGatewayProxyFactoryBean` in the `IntegrationFlows`; populate `defaultRequestChannel` directly to the `GatewayProxyFactoryBean` instance * Add an overloaded `IntegrationFlows.from(Class, String)` to allow to specify an explicit bean name for the target gateway proxy * Extract and populate bean name from the `@MessagingGateway.name()` in the `AnnotationGatewayProxyFactoryBean` * Stop lifecycles in the `AmqpTests` after using for proper test suit shutdown
This commit is contained in:
committed by
Gary Russell
parent
b69bbdc43b
commit
e6225926c4
@@ -444,6 +444,7 @@ public class IntegrationFlowTests {
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@Qualifier("errorRecovererFunction")
|
||||
private Function<String, String> errorRecovererFlowGateway;
|
||||
|
||||
@Test
|
||||
@@ -789,7 +790,7 @@ public class IntegrationFlowTests {
|
||||
|
||||
@Bean
|
||||
public IntegrationFlow errorRecovererFlow() {
|
||||
return IntegrationFlows.from(Function.class)
|
||||
return IntegrationFlows.from(Function.class, "errorRecovererFunction")
|
||||
.handle((GenericHandler<?>) (p, h) -> {
|
||||
throw new RuntimeException("intentional");
|
||||
}, e -> e.advice(retryAdvice()))
|
||||
|
||||
Reference in New Issue
Block a user