Apache Artemis uses a specific syntax for representing wildcards in security settings, address settings, and when creating consumers.
The syntax is similar to that used by AMQP.
An wildcard expression contains words separated by a delimiter.
The default delimiter is . (full stop).
The special characters # and * also have special meaning and can take the place of a word.
To be clear, the wildcard characters cannot be used like wildcards in a regular expression. They operate exclusively on words separated by a delimiter.
1. Matching Any Word
The character # means "match any sequence of zero or more words".
So the wildcard news.europe.# would match:
-
news.europe -
news.europe.sport -
news.europe.politics -
news.europe.politics.regional
But news.europe.# would not match:
-
news.usa -
news.usa.sport -
entertainment
2. Matching a Single Word
The character * means "match a single word".
The wildcard news.* would match:
-
news.europe -
news.usa
But news.* would not match:
-
news.europe.sport -
news.usa.sport -
news.europe.politics.regional
The wildcard news.*.sport would match:
-
news.europe.sport -
news.usa.sport
But news.*.sport would not match:
-
news.europe.politics
3. Customizing the Syntax
It’s possible to further configure the syntax of the wildcard addresses using the broker configuration.
For that, the <wildcard-addresses> configuration tag is used.
<wildcard-addresses>
<routing-enabled>true</routing-enabled>
<delimiter>.</delimiter>
<any-words>#</any-words>
<single-word>*</single-word>
</wildcard-addresses>
The example above shows the default configuration.
|
It is technically possible to use
|