SDK DMF Support - added demo (#1710)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-04-11 16:39:31 +03:00
committed by GitHub
parent b491d6d548
commit 06c6c5932c
4 changed files with 114 additions and 6 deletions

View File

@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.sdk.dmf.amqp;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.hawkbit.sdk.Tenant;
import org.eclipse.hawkbit.sdk.Tenant.DMF;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
@@ -37,16 +38,17 @@ public class Amqp {
vHosts.values().forEach(VHost::stop);
}
public VHost getVhost(final Tenant.DMF dmf) {
final String vHost = ObjectUtils.isEmpty(dmf.getVirtualHost()) ?
rabbitProperties.getVirtualHost() : dmf.getVirtualHost();
public VHost getVhost(final DMF dmf) {
final String vHost = dmf == null || ObjectUtils.isEmpty(dmf.getVirtualHost()) ?
(rabbitProperties.getVirtualHost() == null ? "/" :rabbitProperties.getVirtualHost()) :
dmf.getVirtualHost();
return vHosts.computeIfAbsent(vHost, vh -> {
final CachingConnectionFactory connectionFactory = new CachingConnectionFactory(rabbitProperties.getHost());
connectionFactory.setUsername(
ObjectUtils.isEmpty(dmf.getUsername()) ?
dmf == null || ObjectUtils.isEmpty(dmf.getUsername()) ?
rabbitProperties.getUsername() : dmf.getUsername());
connectionFactory.setPassword(
ObjectUtils.isEmpty(dmf.getPassword()) ?
dmf == null || ObjectUtils.isEmpty(dmf.getPassword()) ?
rabbitProperties.getPassword() : dmf.getPassword());
connectionFactory.setVirtualHost(vHost);
return new VHost(connectionFactory, amqpProperties);