SCST-GH-1009: Producer properties dynamic bindings

Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/1009
This commit is contained in:
Gary Russell
2017-11-10 09:56:49 -05:00
committed by Oleg Zhurakousky
parent 1e0a8f206d
commit 203c8dbcea

View File

@@ -39,22 +39,45 @@ public class RabbitExtendedBindingProperties implements ExtendedBindingPropertie
}
@Override
public RabbitConsumerProperties getExtendedConsumerProperties(String channelName) {
if (bindings.containsKey(channelName) && bindings.get(channelName).getConsumer() != null) {
return bindings.get(channelName).getConsumer();
public synchronized RabbitConsumerProperties getExtendedConsumerProperties(String channelName) {
if (bindings.containsKey(channelName)) {
if (bindings.get(channelName).getConsumer() != null) {
return bindings.get(channelName).getConsumer();
}
else {
RabbitConsumerProperties properties = new RabbitConsumerProperties();
this.bindings.get(channelName).setConsumer(properties);
return properties;
}
}
else {
return new RabbitConsumerProperties();
RabbitConsumerProperties properties = new RabbitConsumerProperties();
RabbitBindingProperties rbp = new RabbitBindingProperties();
rbp.setConsumer(properties);
bindings.put(channelName, rbp);
return properties;
}
}
@Override
public RabbitProducerProperties getExtendedProducerProperties(String channelName) {
if (bindings.containsKey(channelName) && bindings.get(channelName).getProducer() != null) {
return bindings.get(channelName).getProducer();
public synchronized RabbitProducerProperties getExtendedProducerProperties(String channelName) {
if (bindings.containsKey(channelName)) {
if (bindings.get(channelName).getProducer() != null) {
return bindings.get(channelName).getProducer();
}
else {
RabbitProducerProperties properties = new RabbitProducerProperties();
this.bindings.get(channelName).setProducer(properties);
return properties;
}
}
else {
return new RabbitProducerProperties();
RabbitProducerProperties properties = new RabbitProducerProperties();
RabbitBindingProperties rbp = new RabbitBindingProperties();
rbp.setProducer(properties);
bindings.put(channelName, rbp);
return properties;
}
}
}