Skip to content

Commit 147372e

Browse files
author
Igor Polevoy
committed
#263 Add JMS message ID to Command instance
1 parent 3004b83 commit 147372e

File tree

4 files changed

+15
-14
lines changed

4 files changed

+15
-14
lines changed

javalite-async/src/main/java/org/javalite/async/Async.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -416,18 +416,17 @@ public Command receiveCommand(String queueName, long timeout) {
416416
try(Session session = consumerConnection.createSession()){
417417
Queue queue = (Queue) jmsServer.lookup(QUEUE_NAMESPACE + queueName);
418418
MessageConsumer consumer = session.createConsumer(queue);
419-
Message m = consumer.receive(timeout);
420-
if(m == null){
419+
Message message = consumer.receive(timeout);
420+
if(message == null){
421421
return null;
422422
}else{
423423
Command command;
424424
if(binaryMode){
425-
BytesMessage message = (BytesMessage) m;
426-
command = Command.fromBytes(getBytes(message));
425+
command = Command.fromBytes(getBytes((BytesMessage) message));
427426
}else {
428-
TextMessage message = (TextMessage) m;
429-
command = Command.fromXml(message.getText());
427+
command = Command.fromXml(((TextMessage)message).getText());
430428
}
429+
command.setJMSMessageID(message.getJMSMessageID());
431430
return command;
432431
}
433432
} catch (Exception e) {
@@ -452,13 +451,13 @@ public List<Command> getTopCommands(int count, String queueName) {
452451
Enumeration messages = session.createBrowser(queue).getEnumeration();
453452
for(int i = 0; i < count && messages.hasMoreElements(); i++) {
454453
Command command;
454+
Message message = (Message) messages.nextElement();
455455
if(binaryMode){
456-
BytesMessage message = (BytesMessage)messages.nextElement();
457-
command = Command.fromBytes(getBytes(message));
456+
command = Command.fromBytes(getBytes((BytesMessage) message));
458457
}else{
459-
TextMessage msg = (TextMessage)messages.nextElement();
460-
command = Command.fromXml(msg.getText());
458+
command = Command.fromXml(((TextMessage)message).getText());
461459
}
460+
command.setJMSMessageID(message.getJMSMessageID());
462461
res.add(command);
463462
}
464463
return res;

javalite-async/src/main/java/org/javalite/async/Command.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,11 @@ public static <T extends Command> T fromBytes(byte[] bytes, Class<T> type) throw
115115
return fromBytes(bytes);
116116
}
117117

118-
public String getJmsMessageId() {
118+
public String getJMSMessageID() {
119119
return jmsMessageId;
120120
}
121121

122-
public void setJmsMessageId(String jmsMessageId) {
122+
public void setJMSMessageID(String jmsMessageId) {
123123
this.jmsMessageId = jmsMessageId;
124124
}
125125
}

javalite-async/src/main/java/org/javalite/async/CommandListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ public void onMessage(Message message) {
3737
if(message instanceof TextMessage){
3838
command = Command.fromXml(((TextMessage) message).getText());
3939
} else { // assume BytesMessage
40-
BytesMessage msg = (BytesMessage) message;
41-
command = Command.fromBytes(Async.getBytes(msg));
40+
command = Command.fromBytes(Async.getBytes((BytesMessage) message));
4241
}
42+
command.setJMSMessageID(message.getJMSMessageID());
4343
onCommand(command);
4444
} catch (Exception e) {
4545
throw new AsyncException("Failed to process command", e);

javalite-async/src/test/java/org/javalite/async/AsyncSpec.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ public void shouldRemoveMessages() throws Exception {
109109
List<Command> commands = async.getTopCommands(10, QUEUE_NAME);
110110
a(commands.size()).shouldBeEqual(2);
111111

112+
a(commands.get(0).getJMSMessageID()).shouldNotBeNull();
113+
112114
async.removeAllMessages(QUEUE_NAME);
113115

114116
commands = async.getTopCommands(10, QUEUE_NAME);

0 commit comments

Comments
 (0)