@@ -29,7 +29,8 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.reactivestreams.Publisher;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -542,6 +543,8 @@ public class FunctionConfiguration {
|
||||
*/
|
||||
private static class FunctionBindingRegistrar implements InitializingBean, ApplicationContextAware, EnvironmentAware {
|
||||
|
||||
protected final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private final BinderTypeRegistry binderTypeRegistry;
|
||||
|
||||
private final FunctionCatalog functionCatalog;
|
||||
@@ -594,6 +597,9 @@ public class FunctionConfiguration {
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
logger.info("Functional binding is disabled due to the presense of @EnableBinding annotation in your configuration");
|
||||
}
|
||||
}
|
||||
|
||||
private boolean determineFunctionName(FunctionCatalog catalog, Environment environment) {
|
||||
|
||||
@@ -470,6 +470,32 @@ public class ImplicitFunctionBindingTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithExplicitBindingInstructionsOnlyDestination() {
|
||||
System.clearProperty("spring.cloud.function.definition");
|
||||
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(TestChannelBinderConfiguration
|
||||
.getCompleteConfiguration(SplittableTypesConfiguration.class))
|
||||
.web(WebApplicationType.NONE).run(
|
||||
"--spring.cloud.function.definition=funcArrayOfMessages",
|
||||
"--spring.cloud.stream.bindings.funcArrayOfMessages-in-0.destination=myInput",
|
||||
"--spring.cloud.stream.bindings.funcArrayOfMessages-out-0.destination=myOutput",
|
||||
"--spring.jmx.enabled=false")) {
|
||||
|
||||
InputDestination inputDestination = context.getBean(InputDestination.class);
|
||||
OutputDestination outputDestination = context.getBean(OutputDestination.class);
|
||||
|
||||
Message<byte[]> inputMessage = MessageBuilder.withPayload("aa,bb,cc,dd".getBytes()).build();
|
||||
|
||||
inputDestination.send(inputMessage, "myInput");
|
||||
|
||||
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("aa");
|
||||
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("bb");
|
||||
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("cc");
|
||||
assertThat(new String(outputDestination.receive(100, "myOutput").getPayload())).isEqualTo("dd");
|
||||
assertThat(outputDestination.receive(100)).isNull();
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
public static class NoEnableBindingConfiguration {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user