GH-2501 Maje StreamBridge 'safer' if created outside of Spring

Resolves #2501
This commit is contained in:
Oleg Zhurakousky
2022-08-31 13:33:37 +02:00
parent 6fcc060b66
commit c92bb1f0aa

View File

@@ -52,6 +52,7 @@ import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.util.Assert;
import org.springframework.util.MimeType;
import org.springframework.util.MimeTypeUtils;
import org.springframework.util.StringUtils;
@@ -107,6 +108,9 @@ public final class StreamBridge implements SmartInitializingSingleton {
@SuppressWarnings("serial")
StreamBridge(FunctionCatalog functionCatalog, BindingServiceProperties bindingServiceProperties,
ConfigurableApplicationContext applicationContext, @Nullable NewDestinationBindingCallback destinationBindingCallback) {
Assert.notNull(functionCatalog, "'functionCatalog' must not be null");
Assert.notNull(applicationContext, "'applicationContext' must not be null");
Assert.notNull(bindingServiceProperties, "'bindingServiceProperties' must not be null");
this.bindingService = applicationContext.getBean(BindingService.class);
this.functionCatalog = functionCatalog;
this.applicationContext = applicationContext;
@@ -208,7 +212,9 @@ public final class StreamBridge implements SmartInitializingSingleton {
*/
@SuppressWarnings({ "unchecked"})
public boolean send(String bindingName, @Nullable String binderName, Object data, MimeType outputContentType) {
if (!this.initialized) {
this.afterSingletonsInstantiated();
}
ProducerProperties producerProperties = this.bindingServiceProperties.getProducerProperties(bindingName);
MessageChannel messageChannel = this.resolveDestination(bindingName, producerProperties, binderName);