Skip to content

Commit fa4f51c

Browse files
committed
Subpackage rearrangements within 4.1's jms-messaging alignment
Issue: SPR-10873
1 parent 1fadd1c commit fa4f51c

File tree

18 files changed

+165
-214
lines changed

18 files changed

+165
-214
lines changed

spring-jms/src/main/java/org/springframework/jms/annotation/JmsListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
* arguments including the support of validation</li>
4949
* <li>{@link org.springframework.messaging.handler.annotation.Header @Header}-annotated method
5050
* arguments to extract a specific header value, including standard JMS headers defined by
51-
* {@link org.springframework.jms.support.converter.JmsHeaders JmsHeaders}</li>
51+
* {@link org.springframework.jms.support.JmsHeaders JmsHeaders}</li>
5252
* <li>{@link org.springframework.messaging.handler.annotation.Headers @Headers}-annotated
5353
* argument that must also be assignable to {@link java.util.Map} for getting access to all
5454
* headers.</li>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.jms.messaging;
17+
package org.springframework.jms.core;
1818

1919
import java.util.Map;
2020

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,17 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.jms.messaging;
17+
package org.springframework.jms.core;
1818

1919
import java.util.Map;
20-
2120
import javax.jms.Destination;
2221
import javax.jms.JMSException;
2322
import javax.jms.Session;
2423

2524
import org.springframework.beans.factory.InitializingBean;
26-
import org.springframework.jms.core.JmsTemplate;
27-
import org.springframework.jms.core.MessageCreator;
2825
import org.springframework.jms.support.converter.MessageConversionException;
2926
import org.springframework.jms.support.converter.MessageConverter;
3027
import org.springframework.jms.support.converter.MessagingMessageConverter;
31-
import org.springframework.jms.support.converter.SimpleJmsHeaderMapper;
3228
import org.springframework.jms.support.converter.SimpleMessageConverter;
3329
import org.springframework.messaging.Message;
3430
import org.springframework.messaging.MessagingException;
@@ -42,17 +38,20 @@
4238
* @author Stephane Nicoll
4339
* @since 4.1
4440
*/
45-
public class JmsMessagingTemplate
46-
extends AbstractMessageReceivingTemplate<Destination>
41+
public class JmsMessagingTemplate extends AbstractMessageReceivingTemplate<Destination>
4742
implements JmsMessageOperations, InitializingBean {
4843

4944
private JmsTemplate jmsTemplate;
5045

51-
private MessageConverter jmsMessageConverter = new MessagingMessageConverter(
52-
new SimpleMessageConverter(), new SimpleJmsHeaderMapper());
46+
private MessageConverter jmsMessageConverter = new MessagingMessageConverter();
5347

5448
private String defaultDestinationName;
5549

50+
51+
/**
52+
* Constructor for use with bean properties.
53+
* Requires {@link #setJmsTemplate} to be called.
54+
*/
5655
public JmsMessagingTemplate() {
5756
}
5857

@@ -64,6 +63,7 @@ public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
6463
this.jmsTemplate = jmsTemplate;
6564
}
6665

66+
6767
/**
6868
* Set the {@link JmsTemplate} to use.
6969
*/
@@ -79,7 +79,6 @@ public void setJmsTemplate(JmsTemplate jmsTemplate) {
7979
* <p>Consider configuring a {@link MessagingMessageConverter} with a different
8080
* {@link MessagingMessageConverter#setPayloadConverter(MessageConverter) payload converter}
8181
* for more advanced scenario.
82-
*
8382
* @see org.springframework.jms.support.converter.MessagingMessageConverter
8483
*/
8584
public void setJmsMessageConverter(MessageConverter jmsMessageConverter) {
@@ -150,18 +149,21 @@ public void convertAndSend(String destinationName, Object payload) throws Messag
150149
@Override
151150
public void convertAndSend(String destinationName, Object payload, Map<String, Object> headers)
152151
throws MessagingException {
152+
153153
convertAndSend(destinationName, payload, headers, null);
154154
}
155155

156156
@Override
157157
public void convertAndSend(String destinationName, Object payload, MessagePostProcessor postProcessor)
158158
throws MessagingException {
159+
159160
convertAndSend(destinationName, payload, null, postProcessor);
160161
}
161162

162163
@Override
163164
public void convertAndSend(String destinationName, Object payload, Map<String, Object> headers,
164165
MessagePostProcessor postProcessor) throws MessagingException {
166+
165167
Message<?> message = doConvert(payload, headers, postProcessor);
166168
send(destinationName, message);
167169
}
@@ -206,31 +208,29 @@ public <T> T receiveAndConvert(String destinationName, Class<T> targetClass) thr
206208

207209
@Override
208210
protected void doSend(Destination destination, Message<?> message) {
209-
jmsTemplate.send(destination, new MessagingMessageCreator(message, this.jmsMessageConverter));
211+
this.jmsTemplate.send(destination, new MessagingMessageCreator(message, this.jmsMessageConverter));
210212
}
211213

212214
protected void doSend(String destinationName, Message<?> message) {
213-
jmsTemplate.send(destinationName, new MessagingMessageCreator(message, this.jmsMessageConverter));
215+
this.jmsTemplate.send(destinationName, new MessagingMessageCreator(message, this.jmsMessageConverter));
214216
}
215217

216218
@Override
217219
protected Message<?> doReceive(Destination destination) {
218-
javax.jms.Message jmsMessage = jmsTemplate.receive(destination);
220+
javax.jms.Message jmsMessage = this.jmsTemplate.receive(destination);
219221
return doConvert(jmsMessage);
220222
}
221223

222224
protected Message<?> doReceive(String destinationName) {
223-
javax.jms.Message jmsMessage = jmsTemplate.receive(destinationName);
225+
javax.jms.Message jmsMessage = this.jmsTemplate.receive(destinationName);
224226
return doConvert(jmsMessage);
225227
}
226228

227229
protected String getRequiredDefaultDestinationName() {
228230
String name = getDefaultDestinationName();
229231
if (name == null) {
230-
throw new IllegalStateException(
231-
"No 'defaultDestination' or 'defaultDestinationName' specified. " +
232-
"Check configuration of JmsMessagingTemplate."
233-
);
232+
throw new IllegalStateException("No 'defaultDestination' or 'defaultDestinationName' specified. " +
233+
"Check configuration of JmsMessagingTemplate.");
234234
}
235235
return name;
236236
}
@@ -240,10 +240,10 @@ protected Message<?> doConvert(javax.jms.Message message) {
240240
return null;
241241
}
242242
try {
243-
return (Message<?>) jmsMessageConverter.fromMessage(message);
243+
return (Message<?>) this.jmsMessageConverter.fromMessage(message);
244244
}
245-
catch (JMSException e) {
246-
throw new MessageConversionException("Could not convert '" + message + "'", e);
245+
catch (JMSException ex) {
246+
throw new MessageConversionException("Could not convert '" + message + "'", ex);
247247
}
248248
}
249249

@@ -254,14 +254,14 @@ private static class MessagingMessageCreator implements MessageCreator {
254254

255255
private final MessageConverter messageConverter;
256256

257-
private MessagingMessageCreator(Message<?> message, MessageConverter messageConverter) {
257+
public MessagingMessageCreator(Message<?> message, MessageConverter messageConverter) {
258258
this.message = message;
259259
this.messageConverter = messageConverter;
260260
}
261261

262262
@Override
263263
public javax.jms.Message createMessage(Session session) throws JMSException {
264-
return messageConverter.toMessage(message, session);
264+
return this.messageConverter.toMessage(this.message, session);
265265
}
266266
}
267267

spring-jms/src/main/java/org/springframework/jms/listener/adapter/AbstractAdaptableMessageListener.java

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
import org.apache.commons.logging.LogFactory;
2929

3030
import org.springframework.jms.listener.SessionAwareMessageListener;
31+
import org.springframework.jms.support.JmsHeaderMapper;
3132
import org.springframework.jms.support.JmsUtils;
32-
import org.springframework.jms.support.converter.JmsHeaderMapper;
33+
import org.springframework.jms.support.SimpleJmsHeaderMapper;
3334
import org.springframework.jms.support.converter.MessageConversionException;
3435
import org.springframework.jms.support.converter.MessageConverter;
3536
import org.springframework.jms.support.converter.MessagingMessageConverter;
36-
import org.springframework.jms.support.converter.SimpleJmsHeaderMapper;
3737
import org.springframework.jms.support.converter.SimpleMessageConverter;
3838
import org.springframework.jms.support.destination.DestinationResolver;
3939
import org.springframework.jms.support.destination.DynamicDestinationResolver;
@@ -59,18 +59,11 @@ public abstract class AbstractAdaptableMessageListener
5959

6060
private DestinationResolver destinationResolver = new DynamicDestinationResolver();
6161

62-
private MessageConverter messageConverter;
62+
private MessageConverter messageConverter = new SimpleMessageConverter();
6363

64-
private MessagingMessageConverterAdapter messagingMessageConverter = new MessagingMessageConverterAdapter();
64+
private final MessagingMessageConverterAdapter messagingMessageConverter = new MessagingMessageConverterAdapter();
6565

6666

67-
/**
68-
* Create a new instance with default settings.
69-
*/
70-
protected AbstractAdaptableMessageListener() {
71-
initDefaultStrategies();
72-
}
73-
7467
/**
7568
* Set the default destination to send response messages to. This will be applied
7669
* in case of a request message that does not carry a "JMSReplyTo" field.
@@ -153,21 +146,25 @@ protected MessageConverter getMessageConverter() {
153146
return this.messageConverter;
154147
}
155148

156-
protected MessageConverter getMessagingMessageConverter() {
157-
return this.messagingMessageConverter;
158-
}
159-
160149
/**
161-
* Set the {@link JmsHeaderMapper} implementation to use to map the
162-
* standard JMS headers. By default {@link SimpleJmsHeaderMapper} is
163-
* used
150+
* Set the {@link JmsHeaderMapper} implementation to use to map the standard
151+
* JMS headers. By default, a {@link SimpleJmsHeaderMapper} is used.
164152
* @see SimpleJmsHeaderMapper
165153
*/
166154
public void setHeaderMapper(JmsHeaderMapper headerMapper) {
167155
Assert.notNull(headerMapper, "HeaderMapper must not be null");
168156
this.messagingMessageConverter.setHeaderMapper(headerMapper);
169157
}
170158

159+
/**
160+
* Return the{@link MessagingMessageConverter} for this listener,
161+
* being able to convert {@link org.springframework.messaging.Message}.
162+
*/
163+
protected final MessagingMessageConverter getMessagingMessageConverter() {
164+
return this.messagingMessageConverter;
165+
}
166+
167+
171168
/**
172169
* Standard JMS {@link MessageListener} entry point.
173170
* <p>Delegates the message to the target listener method, with appropriate
@@ -191,15 +188,6 @@ public void onMessage(Message message) {
191188
}
192189
}
193190

194-
/**
195-
* Initialize the default implementations for the adapter's strategies.
196-
* @see #setMessageConverter
197-
* @see org.springframework.jms.support.converter.SimpleMessageConverter
198-
*/
199-
protected void initDefaultStrategies() {
200-
setMessageConverter(new SimpleMessageConverter());
201-
}
202-
203191
/**
204192
* Handle the given exception that arose during listener execution.
205193
* The default implementation logs the exception at error level.
@@ -228,8 +216,8 @@ protected Object extractMessage(Message message) {
228216
}
229217
return message;
230218
}
231-
catch (JMSException e) {
232-
throw new MessageConversionException("Could not unmarshal message", e);
219+
catch (JMSException ex) {
220+
throw new MessageConversionException("Could not unmarshal message", ex);
233221
}
234222
}
235223

@@ -257,8 +245,8 @@ protected void handleResult(Object result, Message request, Session session) {
257245
Destination destination = getResponseDestination(request, response, session);
258246
sendResponse(session, destination, response);
259247
}
260-
catch (Exception e) {
261-
throw new ReplyFailureException("Failed to send reply with payload '" + result + "'", e);
248+
catch (Exception ex) {
249+
throw new ReplyFailureException("Failed to send reply with payload '" + result + "'", ex);
262250
}
263251
}
264252
else {
@@ -410,6 +398,7 @@ protected Object extractPayload(Message message) throws JMSException {
410398
}
411399
}
412400

401+
413402
/**
414403
* Internal class combining a destination name
415404
* and its target destination type (queue or topic).

spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package org.springframework.jms.listener.adapter;
1818

1919
import java.lang.reflect.InvocationTargetException;
20-
2120
import javax.jms.JMSException;
2221
import javax.jms.Message;
2322
import javax.jms.MessageListener;
@@ -137,7 +136,6 @@ public class MessageListenerAdapter extends AbstractAdaptableMessageListener
137136
* Create a new {@link MessageListenerAdapter} with default settings.
138137
*/
139138
public MessageListenerAdapter() {
140-
initDefaultStrategies();
141139
this.delegate = this;
142140
}
143141

@@ -146,7 +144,6 @@ public MessageListenerAdapter() {
146144
* @param delegate the delegate object
147145
*/
148146
public MessageListenerAdapter(Object delegate) {
149-
initDefaultStrategies();
150147
setDelegate(delegate);
151148
}
152149

spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessagingMessageListenerAdapter.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import javax.jms.JMSException;
2020
import javax.jms.Session;
2121

22-
import org.springframework.jms.support.converter.JmsHeaderMapper;
22+
import org.springframework.jms.support.JmsHeaderMapper;
2323
import org.springframework.jms.support.converter.MessageConversionException;
2424
import org.springframework.messaging.Message;
2525
import org.springframework.messaging.MessagingException;
@@ -56,6 +56,7 @@ public void setHandlerMethod(InvocableHandlerMethod handlerMethod) {
5656
this.handlerMethod = handlerMethod;
5757
}
5858

59+
5960
@Override
6061
public void onMessage(javax.jms.Message jmsMessage, Session session) throws JMSException {
6162
Message<?> message = toMessagingMessage(jmsMessage);
@@ -76,34 +77,34 @@ protected Message<?> toMessagingMessage(javax.jms.Message jmsMessage) {
7677
try {
7778
return (Message<?>) getMessagingMessageConverter().fromMessage(jmsMessage);
7879
}
79-
catch (JMSException e) {
80-
throw new MessageConversionException("Could not unmarshal message", e);
80+
catch (JMSException ex) {
81+
throw new MessageConversionException("Could not unmarshal message", ex);
8182
}
8283
}
8384

8485
/**
85-
* Invoke the handler, wrapping any exception to a {@link ListenerExecutionFailedException} with
86-
* a dedicated error message.
86+
* Invoke the handler, wrapping any exception to a {@link ListenerExecutionFailedException}
87+
* with a dedicated error message.
8788
*/
8889
private Object invokeHandler(javax.jms.Message jmsMessage, Session session, Message<?> message) {
8990
try {
90-
return handlerMethod.invoke(message, jmsMessage, session);
91+
return this.handlerMethod.invoke(message, jmsMessage, session);
9192
}
92-
catch (MessagingException e) {
93+
catch (MessagingException ex) {
9394
throw new ListenerExecutionFailedException(createMessagingErrorMessage("Listener method could not " +
94-
"be invoked with the incoming message"), e);
95+
"be invoked with the incoming message"), ex);
9596
}
96-
catch (Exception e) {
97-
throw new ListenerExecutionFailedException("Listener method '"
98-
+ handlerMethod.getMethod().toGenericString() + "' threw exception", e);
97+
catch (Exception ex) {
98+
throw new ListenerExecutionFailedException("Listener method '" +
99+
this.handlerMethod.getMethod().toGenericString() + "' threw exception", ex);
99100
}
100101
}
101102

102103
private String createMessagingErrorMessage(String description) {
103104
StringBuilder sb = new StringBuilder(description).append("\n")
104105
.append("Endpoint handler details:\n")
105-
.append("Method [").append(handlerMethod.getMethod()).append("]\n")
106-
.append("Bean [").append(handlerMethod.getBean()).append("]\n");
106+
.append("Method [").append(this.handlerMethod.getMethod()).append("]\n")
107+
.append("Bean [").append(this.handlerMethod.getBean()).append("]\n");
107108
return sb.toString();
108109
}
109110

spring-jms/src/main/java/org/springframework/jms/messaging/package-info.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)