Реализация селектора сообщений JMS - PullRequest
1 голос
/ 09 марта 2011

Мне нужно проверить, соответствует ли javax.jms.Message указанному селектору, например:

Message msg = ...;
SomeSelectorMatcher matcher = new SomeSelectorMatcher(" someProp='someVal' and someProp2 >3 ... ");

if(matcher.matches(msg){
     //do sth
}else{
     //do sth else
}

Есть ли какая-либо готовая библиотека, которая делает это?

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Мне нужно было реализовать простую тестовую среду, которая симулировала бы поведение JMS, но с использованием синхронного подхода. В любом случае мне удалось найти библиотеку, в которой реализован синтаксический анализатор выбора сообщений - http://openjms.sourceforge.net/

0 голосов
/ 09 марта 2011

Селекторы сообщений не предназначены для этого.Зачем вам это нужно?

Я бы порекомендовал создать для него несколько потребителей.Например, из приведенного выше примера я бы создал двух потребителей.Один с этим кодом:

//do sth

, а второй для

//do sth else

Первый будет иметь селектор, а второй селектор логически противоположен.

Если вы действительнонеобходимо сделать фильтрацию после получения сообщения, вы можете напрямую сравнить свои заголовки и свойства из входящего сообщения.Вы даже можете обработать тело, в то время как селекторы не могут это сделать.

http://download.oracle.com/javaee/5/tutorial/doc/bnceh.html

...