Можно ли сделать селектор 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);
Другие вопросы по тегам