@@ -538,12 +538,18 @@ public B controlBus(@Nullable Consumer<GenericEndpointSpec<ServiceActivatingHand
538
538
/**
539
539
* Populate the {@code Transformer} EI Pattern specific {@link MessageHandler} implementation
540
540
* for the SpEL {@link Expression}.
541
+ * Shortcut for:
542
+ * <pre class="code">
543
+ * {@code
544
+ * .transformWith((transformerSpec) -> transformerSpec.expression(expression))
545
+ * }
546
+ * </pre>
541
547
* @param expression the {@code Transformer} {@link Expression}.
542
548
* @return the current {@link BaseIntegrationFlowDefinition}.
543
549
* @see ExpressionEvaluatingTransformer
544
550
*/
545
551
public B transform (String expression ) {
546
- return transform ( expression , ( Consumer < GenericEndpointSpec < MessageTransformingHandler >>) null );
552
+ return transformWith (( transformerSpec ) -> transformerSpec . expression ( expression ) );
547
553
}
548
554
549
555
/**
@@ -552,8 +558,10 @@ public B transform(String expression) {
552
558
* @param expression the {@code Transformer} {@link Expression}.
553
559
* @param endpointConfigurer the {@link Consumer} to provide integration endpoint options.
554
560
* @return the current {@link BaseIntegrationFlowDefinition}.
561
+ * @deprecated since 6.2 in favor of {@link #transformWith(Consumer)}.
555
562
* @see ExpressionEvaluatingTransformer
556
563
*/
564
+ @ Deprecated (since = "6.2" , forRemoval = true )
557
565
public B transform (String expression ,
558
566
@ Nullable Consumer <GenericEndpointSpec <MessageTransformingHandler >> endpointConfigurer ) {
559
567
@@ -566,9 +574,15 @@ public B transform(String expression,
566
574
/**
567
575
* Populate the {@code MessageTransformingHandler} for the {@link MethodInvokingTransformer}
568
576
* to invoke the discovered service method at runtime.
577
+ * Shortcut for:
578
+ * <pre class="code">
579
+ * {@code
580
+ * .transformWith((transformerSpec) -> transformerSpec.ref(service))
581
+ * }
582
+ * </pre>
569
583
* @param service the service to use.
570
584
* @return the current {@link BaseIntegrationFlowDefinition}.
571
- * @see ExpressionEvaluatingTransformer
585
+ * @see MethodInvokingTransformer
572
586
*/
573
587
public B transform (Object service ) {
574
588
return transform (service , null );
@@ -577,13 +591,36 @@ public B transform(Object service) {
577
591
/**
578
592
* Populate the {@code MessageTransformingHandler} for the {@link MethodInvokingTransformer}
579
593
* to invoke the service method at runtime.
594
+ * <pre class="code">
595
+ * {@code
596
+ * .transformWith((transformerSpec) -> transformerSpec.ref(service).method(methodName))
597
+ * }
598
+ * </pre>
580
599
* @param service the service to use.
581
600
* @param methodName the method to invoke.
582
601
* @return the current {@link BaseIntegrationFlowDefinition}.
583
602
* @see MethodInvokingTransformer
584
603
*/
585
604
public B transform (Object service , @ Nullable String methodName ) {
586
- return transform (service , methodName , null );
605
+ return transformWith ((transformerSpec ) -> transformerSpec .ref (service ).method (methodName ));
606
+ }
607
+
608
+ /**
609
+ * Populate the {@code MessageTransformingHandler} for the {@link MethodInvokingTransformer}
610
+ * to invoke the bean method at runtime.
611
+ * <pre class="code">
612
+ * {@code
613
+ * .transformWith((transformerSpec) -> transformerSpec.refName(beanName).method(methodName))
614
+ * }
615
+ * </pre>
616
+ * @param beanName the name for bean to resolve lazily.
617
+ * @param methodName the method to invoke.
618
+ * @return the current {@link BaseIntegrationFlowDefinition}.
619
+ * @since 6.2
620
+ * @see MethodInvokingTransformer
621
+ */
622
+ public B transform (String beanName , @ Nullable String methodName ) {
623
+ return transformWith ((transformerSpec ) -> transformerSpec .refName (beanName ).method (methodName ));
587
624
}
588
625
589
626
/**
@@ -593,8 +630,10 @@ public B transform(Object service, @Nullable String methodName) {
593
630
* @param methodName the method to invoke.
594
631
* @param endpointConfigurer the {@link Consumer} to provide integration endpoint options.
595
632
* @return the current {@link BaseIntegrationFlowDefinition}.
596
- * @see ExpressionEvaluatingTransformer
633
+ * @deprecated since 6.2 in favor of {@link #transformWith(Consumer)}.
634
+ * @see MethodInvokingTransformer
597
635
*/
636
+ @ Deprecated (since = "6.2" , forRemoval = true )
598
637
public B transform (Object service , @ Nullable String methodName ,
599
638
@ Nullable Consumer <GenericEndpointSpec <MessageTransformingHandler >> endpointConfigurer ) {
600
639
@@ -617,12 +656,18 @@ public B transform(Object service, @Nullable String methodName,
617
656
* .transform(Scripts.script("classpath:myScript.py").variable("foo", bar()))
618
657
* }
619
658
* </pre>
659
+ * Shortcut for:
660
+ * <pre class="code">
661
+ * {@code
662
+ * .transformWith((transformerSpec) -> transformerSpec.processor(messageProcessorSpec))
663
+ * }
664
+ * </pre>
620
665
* @param messageProcessorSpec the {@link MessageProcessorSpec} to use.
621
666
* @return the current {@link BaseIntegrationFlowDefinition}.
622
667
* @see MethodInvokingTransformer
623
668
*/
624
669
public B transform (MessageProcessorSpec <?> messageProcessorSpec ) {
625
- return transform ( messageProcessorSpec , ( Consumer < GenericEndpointSpec < MessageTransformingHandler >>) null );
670
+ return transformWith (( transformerSpec ) -> transformerSpec . processor ( messageProcessorSpec ) );
626
671
}
627
672
628
673
/**
@@ -638,8 +683,10 @@ public B transform(MessageProcessorSpec<?> messageProcessorSpec) {
638
683
* @param messageProcessorSpec the {@link MessageProcessorSpec} to use.
639
684
* @param endpointConfigurer the {@link Consumer} to provide integration endpoint options.
640
685
* @return the current {@link BaseIntegrationFlowDefinition}.
686
+ * @deprecated since 6.2 in favor of {@link #transformWith(Consumer)}.
641
687
* @see MethodInvokingTransformer
642
688
*/
689
+ @ Deprecated (since = "6.2" , forRemoval = true )
643
690
public B transform (MessageProcessorSpec <?> messageProcessorSpec ,
644
691
@ Nullable Consumer <GenericEndpointSpec <MessageTransformingHandler >> endpointConfigurer ) {
645
692
@@ -679,7 +726,8 @@ public <P> B convert(Class<P> payloadType) {
679
726
* @see LambdaMessageProcessor
680
727
*/
681
728
public <P , T > B transform (@ Nullable Class <P > expectedType , GenericTransformer <P , T > genericTransformer ) {
682
- return transform (expectedType , genericTransformer , null );
729
+ return transformWith ((transformerSpec ) ->
730
+ transformerSpec .transformer (genericTransformer ).expectedType (expectedType ));
683
731
}
684
732
685
733
/**
@@ -714,10 +762,12 @@ public <P> B convert(Class<P> payloadType,
714
762
* @param <P> the payload type - 'transform from', or {@code Message.class}.
715
763
* @param <T> the target type - 'transform to'.
716
764
* @return the current {@link BaseIntegrationFlowDefinition}.
765
+ * @deprecated since 6.2 in favor of {@link #transformWith(Consumer)}
717
766
* @see MethodInvokingTransformer
718
767
* @see LambdaMessageProcessor
719
768
* @see GenericEndpointSpec
720
769
*/
770
+ @ Deprecated (since = "6.2" , forRemoval = true )
721
771
public <P , T > B transform (@ Nullable Class <P > expectedType , GenericTransformer <P , T > genericTransformer ,
722
772
@ Nullable Consumer <GenericEndpointSpec <MessageTransformingHandler >> endpointConfigurer ) {
723
773
@@ -730,6 +780,18 @@ public <P, T> B transform(@Nullable Class<P> expectedType, GenericTransformer<P,
730
780
.handle (new MessageTransformingHandler (transformer ), endpointConfigurer );
731
781
}
732
782
783
+ /**
784
+ * Populate a {@link MessageTransformingHandler} into the endpoint with provided {@link TransformerSpec} options.
785
+ * One of the 'expression', 'ref', 'refName', 'processor' or 'function' must be provided.
786
+ * @param <P> the payload type - 'transform from', or {@code Message.class}.
787
+ * @param <T> the target type - 'transform to'.
788
+ * @return the current {@link BaseIntegrationFlowDefinition}.
789
+ * @since 6.2
790
+ */
791
+ public B transformWith (Consumer <TransformerSpec > transformerConfigurer ) {
792
+ return register (new TransformerSpec (), transformerConfigurer );
793
+ }
794
+
733
795
/**
734
796
* Populate a {@link MessageFilter} with {@link MessageSelector} for the provided SpEL expression.
735
797
* @param expression the SpEL expression.
@@ -2787,7 +2849,7 @@ protected <T> Publisher<Message<T>> toReactivePublisher(boolean autoStartOnSubsc
2787
2849
}
2788
2850
2789
2851
protected <S extends ConsumerEndpointSpec <? super S , ? extends MessageHandler >> B register (S endpointSpec ,
2790
- @ Nullable Consumer <S > endpointConfigurer ) {
2852
+ @ Nullable Consumer <? super S > endpointConfigurer ) {
2791
2853
2792
2854
if (endpointConfigurer != null ) {
2793
2855
endpointConfigurer .accept (endpointSpec );
0 commit comments