mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-21 21:39:05 +00:00
Consistently introspect constructor-provided JmsTemplate
See gh-32501
This commit is contained in:
@@ -59,7 +59,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
|
||||
private @Nullable JmsOperations jmsTemplate;
|
||||
|
||||
private MessageConverter jmsMessageConverter = new MessagingMessageConverter();
|
||||
private MessageConverter jmsMessageConverter;
|
||||
|
||||
private boolean converterSet;
|
||||
|
||||
@@ -71,6 +71,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
* Requires {@link #setConnectionFactory} or {@link #setJmsTemplate} to be called.
|
||||
*/
|
||||
public JmsMessagingTemplate() {
|
||||
this.jmsMessageConverter = new MessagingMessageConverter();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,7 +80,16 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
* @since 4.1.2
|
||||
*/
|
||||
public JmsMessagingTemplate(ConnectionFactory connectionFactory) {
|
||||
this.jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
this(new JmsTemplate(connectionFactory));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code JmsMessagingTemplate} instance with the {@link JmsTemplate} to use.
|
||||
*/
|
||||
public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
|
||||
Assert.notNull(jmsTemplate, "JmsTemplate must not be null");
|
||||
this.jmsTemplate = jmsTemplate;
|
||||
this.jmsMessageConverter = new MessagingMessageConverter(jmsTemplate.getMessageConverter());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,13 +99,8 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
public JmsMessagingTemplate(JmsOperations jmsTemplate) {
|
||||
Assert.notNull(jmsTemplate, "JmsTemplate must not be null");
|
||||
this.jmsTemplate = jmsTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code JmsMessagingTemplate} instance with the {@link JmsTemplate} to use.
|
||||
*/
|
||||
public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
|
||||
this((JmsOperations) jmsTemplate);
|
||||
this.jmsMessageConverter = (jmsTemplate instanceof JmsTemplate template ?
|
||||
new MessagingMessageConverter(template.getMessageConverter()) : new MessagingMessageConverter());
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +109,10 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
* @since 4.1.2
|
||||
*/
|
||||
public void setConnectionFactory(ConnectionFactory connectionFactory) {
|
||||
if (this.jmsTemplate instanceof JmsAccessor template) {
|
||||
if (this.jmsTemplate instanceof JmsAccessor accessor) {
|
||||
JmsTemplate template = new JmsTemplate(accessor);
|
||||
template.setConnectionFactory(connectionFactory);
|
||||
this.jmsTemplate = template;
|
||||
}
|
||||
else {
|
||||
this.jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
|
||||
@@ -42,6 +42,7 @@ import org.mockito.stubbing.Answer;
|
||||
import org.springframework.jms.InvalidDestinationException;
|
||||
import org.springframework.jms.MessageNotReadableException;
|
||||
import org.springframework.jms.StubTextMessage;
|
||||
import org.springframework.jms.support.converter.SimpleMessageConverter;
|
||||
import org.springframework.jms.support.destination.DestinationResolutionException;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessagingException;
|
||||
@@ -70,7 +71,7 @@ class JmsClientTests {
|
||||
@Captor
|
||||
private ArgumentCaptor<MessageCreator> messageCreator;
|
||||
|
||||
@Mock
|
||||
@Mock(strictness = Mock.Strictness.LENIENT)
|
||||
private JmsTemplate jmsTemplate;
|
||||
|
||||
private JmsClient jmsClient;
|
||||
@@ -78,6 +79,7 @@ class JmsClientTests {
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
given(this.jmsTemplate.getMessageConverter()).willReturn(new SimpleMessageConverter());
|
||||
this.jmsClient = JmsClient.create(this.jmsTemplate);
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -80,6 +80,7 @@ class JmsMessagingTemplateTests {
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
given(this.jmsTemplate.getMessageConverter()).willReturn(new SimpleMessageConverter());
|
||||
this.messagingTemplate = new JmsMessagingTemplate(this.jmsTemplate);
|
||||
}
|
||||
|
||||
@@ -93,7 +94,6 @@ class JmsMessagingTemplateTests {
|
||||
MessageConverter messageConverter = mock();
|
||||
given(this.jmsTemplate.getMessageConverter()).willReturn(messageConverter);
|
||||
JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate(this.jmsTemplate);
|
||||
messagingTemplate.afterPropertiesSet();
|
||||
assertPayloadConverter(messagingTemplate, messageConverter);
|
||||
}
|
||||
|
||||
@@ -174,9 +174,6 @@ class JmsMessagingTemplateTests {
|
||||
|
||||
@Test
|
||||
void sendPropertyInjection() {
|
||||
MessageConverter messageConverter = new SimpleMessageConverter();
|
||||
given(this.jmsTemplate.getMessageConverter()).willReturn(messageConverter);
|
||||
|
||||
this.messagingTemplate = new JmsMessagingTemplate();
|
||||
this.messagingTemplate.setJmsTemplate(this.jmsTemplate);
|
||||
this.messagingTemplate.setDefaultDestinationName("myQueue");
|
||||
|
||||
Reference in New Issue
Block a user