Можно ли сделать селектор JMS нечувствительным к регистру?
Я знаю, что свойства заголовков JMS чувствительны к регистру. Но я работаю над одним требованием, в котором я должен сделать JMS selctor не чувствительным к регистру. Возможно ли это сделать? Я использую верблюда, и ниже я определяю свой селектор в файле свойств.
accountQueue = ActiveMQqueueJmsComponent: queue: account? selector = money <> ('Dollar')
Верблюжий маршрут:
@Value("${consumer.accountQueue}")
private String accountQueue;
@Bean
RouteBuilder accountRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from(accountQueue).to(OrderService)
}
}
}
Я пытался использовать такие функции, как UPPER и LOWER, но не смог добиться успеха. Я защищаюсь, как показано ниже.
accountQueue = ActiveMQqueueJmsComponent:queue:account?selector=money <> UPPER('Dollar') // not working
1 ответ
Посмотрите на вызовы функций в расширении селектора, которые были добавлены в ActiveMQ в этой проблеме JIRA. Используя это усовершенствование, вы сможете создать что-то, что соответствует вашим потребностям.
Это усовершенствование позволяет выполнять некоторые вызовы пользовательских функций с помощью нескольких встроенных функций:
Message message = createMessage();
assertSelector(message, "REGEX('1870414179', SessionserverId)", false);
message.setLongProperty("SessionserverId", 1870414179);
assertSelector(message, "REGEX('1870414179', SessionserverId)", true);
assertSelector(message, "REGEX('[0-9]*', SessionserverId)", true);
assertSelector(message, "REGEX('^[1-8]*$', SessionserverId)", false);
assertSelector(message, "REGEX('^[1-8]*$', SessionserverId)", false);
assertSelector(message, "INLIST(SPLIT('Tom,Dick,George',','), name)", false);
assertSelector(message, "INLIST(SPLIT('Tom,James,George',','), name)", true);
assertSelector(message, "INLIST(MAKELIST('Tom','Dick','George'), name)", false);
assertSelector(message, "INLIST(MAKELIST('Tom','James','George'), name)", true);
assertSelector(message, "REGEX('connection1111', REPLACE(JMSMessageID,':',''))", true);