Merge pull request #62 from bsinno/fix_wrong_amqp_message_converter
👍 merged
This commit is contained in:
@@ -29,7 +29,7 @@ import org.eclipse.hawkbit.util.ArtifactUrlHandler;
|
|||||||
import org.eclipse.hawkbit.util.IpUtil;
|
import org.eclipse.hawkbit.util.IpUtil;
|
||||||
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.Message;
|
||||||
import org.springframework.amqp.core.MessageProperties;
|
import org.springframework.amqp.core.MessageProperties;
|
||||||
import org.springframework.amqp.support.converter.MessageConverter;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
@@ -58,8 +58,8 @@ public class AmqpMessageDispatcherService extends BaseAmqpService {
|
|||||||
* message converter
|
* message converter
|
||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
public AmqpMessageDispatcherService(final MessageConverter messageConverter) {
|
public AmqpMessageDispatcherService(final RabbitTemplate rabbitTemplate) {
|
||||||
super(messageConverter);
|
super(rabbitTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -87,8 +87,9 @@ public class AmqpMessageDispatcherService extends BaseAmqpService {
|
|||||||
downloadAndUpdateRequest.addSoftwareModule(amqpSoftwareModule);
|
downloadAndUpdateRequest.addSoftwareModule(amqpSoftwareModule);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Message message = messageConverter.toMessage(downloadAndUpdateRequest, createConnectorMessageProperties(
|
final Message message = getMessageConverter().toMessage(downloadAndUpdateRequest,
|
||||||
targetAssignDistributionSetEvent.getTenant(), controllerId, EventTopic.DOWNLOAD_AND_INSTALL));
|
createConnectorMessageProperties(targetAssignDistributionSetEvent.getTenant(), controllerId,
|
||||||
|
EventTopic.DOWNLOAD_AND_INSTALL));
|
||||||
amqpSenderService.sendMessage(message, targetAdress);
|
amqpSenderService.sendMessage(message, targetAdress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +105,7 @@ public class AmqpMessageDispatcherService extends BaseAmqpService {
|
|||||||
final CancelTargetAssignmentEvent cancelTargetAssignmentDistributionSetEvent) {
|
final CancelTargetAssignmentEvent cancelTargetAssignmentDistributionSetEvent) {
|
||||||
final String controllerId = cancelTargetAssignmentDistributionSetEvent.getControllerId();
|
final String controllerId = cancelTargetAssignmentDistributionSetEvent.getControllerId();
|
||||||
final Long actionId = cancelTargetAssignmentDistributionSetEvent.getActionId();
|
final Long actionId = cancelTargetAssignmentDistributionSetEvent.getActionId();
|
||||||
final Message message = messageConverter.toMessage(actionId, createConnectorMessageProperties(
|
final Message message = getMessageConverter().toMessage(actionId, createConnectorMessageProperties(
|
||||||
cancelTargetAssignmentDistributionSetEvent.getTenant(), controllerId, EventTopic.CANCEL_DOWNLOAD));
|
cancelTargetAssignmentDistributionSetEvent.getTenant(), controllerId, EventTopic.CANCEL_DOWNLOAD));
|
||||||
|
|
||||||
amqpSenderService.sendMessage(message, cancelTargetAssignmentDistributionSetEvent.getTargetAdress());
|
amqpSenderService.sendMessage(message, cancelTargetAssignmentDistributionSetEvent.getTargetAdress());
|
||||||
|
|||||||
@@ -96,8 +96,6 @@ public class AmqpMessageHandlerService extends BaseAmqpService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HostnameResolver hostnameResolver;
|
private HostnameResolver hostnameResolver;
|
||||||
|
|
||||||
private final RabbitTemplate internalAmqpTemplate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
@@ -105,14 +103,13 @@ public class AmqpMessageHandlerService extends BaseAmqpService {
|
|||||||
* the configured amqp template.
|
* the configured amqp template.
|
||||||
*/
|
*/
|
||||||
public AmqpMessageHandlerService(final RabbitTemplate defaultTemplate) {
|
public AmqpMessageHandlerService(final RabbitTemplate defaultTemplate) {
|
||||||
super(defaultTemplate.getMessageConverter());
|
super(defaultTemplate);
|
||||||
this.internalAmqpTemplate = defaultTemplate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RabbitListener(queues = "${hawkbit.dmf.rabbitmq.receiverQueue}", containerFactory = "listenerContainerFactory")
|
@RabbitListener(queues = "${hawkbit.dmf.rabbitmq.receiverQueue}", containerFactory = "listenerContainerFactory")
|
||||||
private Message onMessage(final Message message, @Header(MessageHeaderKey.TYPE) final String type,
|
private Message onMessage(final Message message, @Header(MessageHeaderKey.TYPE) final String type,
|
||||||
@Header(MessageHeaderKey.TENANT) final String tenant) {
|
@Header(MessageHeaderKey.TENANT) final String tenant) {
|
||||||
return onMessage(message, type, tenant, internalAmqpTemplate.getConnectionFactory().getVirtualHost());
|
return onMessage(message, type, tenant, getRabbitTemplate().getConnectionFactory().getVirtualHost());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -207,7 +204,7 @@ public class AmqpMessageHandlerService extends BaseAmqpService {
|
|||||||
authentificationResponse.setMessage(errorMessage);
|
authentificationResponse.setMessage(errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
return messageConverter.toMessage(authentificationResponse, messageProperties);
|
return getMessageConverter().toMessage(authentificationResponse, messageProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Artifact convertDbArtifact(final DbArtifact dbArtifact) {
|
private static Artifact convertDbArtifact(final DbArtifact dbArtifact) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import java.util.Map;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.Message;
|
||||||
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.amqp.support.converter.AbstractJavaTypeMapper;
|
import org.springframework.amqp.support.converter.AbstractJavaTypeMapper;
|
||||||
import org.springframework.amqp.support.converter.MessageConverter;
|
import org.springframework.amqp.support.converter.MessageConverter;
|
||||||
|
|
||||||
@@ -25,16 +26,16 @@ import org.springframework.amqp.support.converter.MessageConverter;
|
|||||||
public class BaseAmqpService {
|
public class BaseAmqpService {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(BaseAmqpService.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(BaseAmqpService.class);
|
||||||
protected MessageConverter messageConverter;
|
private final RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param messageConverter
|
* @param rabbitTemplate
|
||||||
* the message messageConverter.
|
* the rabbit template.
|
||||||
*/
|
*/
|
||||||
public BaseAmqpService(final MessageConverter messageConverter) {
|
public BaseAmqpService(final RabbitTemplate rabbitTemplate) {
|
||||||
this.messageConverter = messageConverter;
|
this.rabbitTemplate = rabbitTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +64,7 @@ public class BaseAmqpService {
|
|||||||
}
|
}
|
||||||
message.getMessageProperties().getHeaders().put(AbstractJavaTypeMapper.DEFAULT_CLASSID_FIELD_NAME,
|
message.getMessageProperties().getHeaders().put(AbstractJavaTypeMapper.DEFAULT_CLASSID_FIELD_NAME,
|
||||||
clazz.getName());
|
clazz.getName());
|
||||||
return (T) messageConverter.fromMessage(message);
|
return (T) rabbitTemplate.getMessageConverter().fromMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -85,11 +86,11 @@ public class BaseAmqpService {
|
|||||||
ArrayList.class.getName());
|
ArrayList.class.getName());
|
||||||
message.getMessageProperties().getHeaders().put(AbstractJavaTypeMapper.DEFAULT_CONTENT_CLASSID_FIELD_NAME,
|
message.getMessageProperties().getHeaders().put(AbstractJavaTypeMapper.DEFAULT_CONTENT_CLASSID_FIELD_NAME,
|
||||||
clazz.getName());
|
clazz.getName());
|
||||||
return (List<T>) messageConverter.fromMessage(message);
|
return (List<T>) rabbitTemplate.getMessageConverter().fromMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageConverter getMessageConverter() {
|
public MessageConverter getMessageConverter() {
|
||||||
return messageConverter;
|
return rabbitTemplate.getMessageConverter();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final String getStringHeaderKey(final Message message, final String key,
|
protected final String getStringHeaderKey(final Message message, final String key,
|
||||||
@@ -107,4 +108,7 @@ public class BaseAmqpService {
|
|||||||
throw new IllegalArgumentException(error);
|
throw new IllegalArgumentException(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected RabbitTemplate getRabbitTemplate() {
|
||||||
|
return rabbitTemplate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class AmqpMessageDispatcherServiceTest extends AbstractIntegrationTestWit
|
|||||||
super.before();
|
super.before();
|
||||||
this.rabbitTemplate = Mockito.mock(RabbitTemplate.class);
|
this.rabbitTemplate = Mockito.mock(RabbitTemplate.class);
|
||||||
when(rabbitTemplate.getMessageConverter()).thenReturn(new Jackson2JsonMessageConverter());
|
when(rabbitTemplate.getMessageConverter()).thenReturn(new Jackson2JsonMessageConverter());
|
||||||
amqpMessageDispatcherService = new AmqpMessageDispatcherService(new Jackson2JsonMessageConverter());
|
amqpMessageDispatcherService = new AmqpMessageDispatcherService(rabbitTemplate);
|
||||||
amqpMessageDispatcherService = spy(amqpMessageDispatcherService);
|
amqpMessageDispatcherService = spy(amqpMessageDispatcherService);
|
||||||
|
|
||||||
senderService = Mockito.mock(DefaultAmqpSenderService.class);
|
senderService = Mockito.mock(DefaultAmqpSenderService.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user