Skip to content

Commit 608b1f2

Browse files
committed
Rename JMS to (AMQP) SQL
1 parent 3552758 commit 608b1f2

10 files changed

+156
-159
lines changed

deps/rabbit/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ define ct_master.erl
258258
endef
259259

260260
PARALLEL_CT_SET_1_A = unit_rabbit_ssl unit_cluster_formation_locking_mocks unit_cluster_formation_sort_nodes unit_collections unit_config_value_encryption unit_connection_tracking
261-
PARALLEL_CT_SET_1_B = amqp_address amqp_auth amqp_credit_api_v2 amqp_filter_prop amqp_filter_sql amqp_jms_unit amqp_dotnet amqp_jms signal_handling single_active_consumer unit_access_control_authn_authz_context_propagation unit_access_control_credential_validation unit_amqp091_content_framing unit_amqp091_server_properties unit_app_management
261+
PARALLEL_CT_SET_1_B = amqp_address amqp_auth amqp_credit_api_v2 amqp_filter_prop amqp_filter_sql amqp_filter_sql_unit amqp_dotnet amqp_jms signal_handling single_active_consumer unit_access_control_authn_authz_context_propagation unit_access_control_credential_validation unit_amqp091_content_framing unit_amqp091_server_properties unit_app_management
262262
PARALLEL_CT_SET_1_C = amqp_proxy_protocol amqpl_consumer_ack amqpl_direct_reply_to backing_queue bindings rabbit_db_maintenance rabbit_db_msup rabbit_db_policy rabbit_db_queue rabbit_db_topic_exchange rabbit_direct_reply_to_prop cluster_limit cluster_minority term_to_binary_compat_prop topic_permission transactions unicode unit_access_control
263263
PARALLEL_CT_SET_1_D = amqqueue_backward_compatibility channel_interceptor channel_operation_timeout classic_queue classic_queue_prop config_schema peer_discovery_dns peer_discovery_tmp_hidden_node per_node_limit per_user_connection_channel_limit
264264

deps/rabbit/src/rabbit_amqp_filter.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
-type expression() :: undefined |
1212
{property, rabbit_amqp_filter_prop:parsed_expressions()} |
13-
{jms, rabbit_amqp_filter_jms:parsed_expression()}.
13+
{sql, rabbit_amqp_filter_sql:parsed_expression()}.
1414

1515
-export_type([expression/0]).
1616

@@ -20,5 +20,5 @@ eval(undefined, _Mc) ->
2020
true;
2121
eval({property, Expr}, Mc) ->
2222
rabbit_amqp_filter_prop:eval(Expr, Mc);
23-
eval({jms, Expr}, Mc) ->
24-
rabbit_amqp_filter_jms:eval(Expr, Mc).
23+
eval({sql, Expr}, Mc) ->
24+
rabbit_amqp_filter_sql:eval(Expr, Mc).

deps/rabbit/src/rabbit_amqp_filter_jms.erl renamed to deps/rabbit/src/rabbit_amqp_filter_sql.erl

Lines changed: 42 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
%%
55
%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
66

7-
-module(rabbit_amqp_filter_jms).
7+
-module(rabbit_amqp_filter_sql).
88
-feature(maybe_expr, enable).
99

1010
-include_lib("amqp10_common/include/amqp10_filter.hrl").
1111

1212
-type parsed_expression() :: {ApplicationProperties :: boolean(),
13-
rabbit_jms_ast:ast()}.
13+
rabbit_amqp_sql_ast:ast()}.
1414

1515
-export_type([parsed_expression/0]).
1616

@@ -21,27 +21,26 @@
2121
-define(MAX_EXPRESSION_LENGTH, 4096).
2222
-define(MAX_TOKENS, 200).
2323

24-
%% defined in both AMQP and JMS
2524
-define(DEFAULT_MSG_PRIORITY, 4).
2625

2726
-define(IS_CONTROL_CHAR(C), C < 32 orelse C =:= 127).
2827

2928
-spec parse(tuple()) ->
3029
{ok, parsed_expression()} | error.
31-
parse({described, Descriptor, {utf8, JmsSelector}}) ->
30+
parse({described, Descriptor, {utf8, SQL}}) ->
3231
maybe
3332
ok ?= check_descriptor(Descriptor),
34-
{ok, String} ?= jms_selector_to_list(JmsSelector),
33+
{ok, String} ?= sql_to_list(SQL),
3534
ok ?= check_length(String),
36-
{ok, Tokens} ?= tokenize(String, JmsSelector),
37-
ok ?= check_token_count(Tokens, JmsSelector),
38-
{ok, Ast0} ?= parse(Tokens, JmsSelector),
39-
{ok, Ast} ?= transform_ast(Ast0, JmsSelector),
35+
{ok, Tokens} ?= tokenize(String, SQL),
36+
ok ?= check_token_count(Tokens, SQL),
37+
{ok, Ast0} ?= parse(Tokens, SQL),
38+
{ok, Ast} ?= transform_ast(Ast0, SQL),
4039
AppProps = has_binary_identifier(Ast),
4140
{ok, {AppProps, Ast}}
4241
end.
4342

44-
%% Evaluates a parsed JMS message selector expression.
43+
%% Evaluates a parsed SQL expression.
4544
-spec eval(parsed_expression(), mc:state()) -> boolean().
4645
eval({ApplicationProperties, Ast}, Msg) ->
4746
State = case ApplicationProperties of
@@ -298,54 +297,54 @@ check_descriptor({ulong, ?DESCRIPTOR_CODE_SQL_FILTER}) ->
298297
check_descriptor(_) ->
299298
error.
300299

301-
jms_selector_to_list(JmsSelector) ->
302-
case unicode:characters_to_list(JmsSelector) of
300+
sql_to_list(SQL) ->
301+
case unicode:characters_to_list(SQL) of
303302
String when is_list(String) ->
304303
{ok, String};
305304
Error ->
306-
rabbit_log:warning("JMS message selector ~p is not UTF-8 encoded: ~p",
307-
[JmsSelector, Error]),
305+
rabbit_log:warning("SQL expression ~p is not UTF-8 encoded: ~p",
306+
[SQL, Error]),
308307
error
309308
end.
310309

311310
check_length(String)
312311
when length(String) > ?MAX_EXPRESSION_LENGTH ->
313-
rabbit_log:warning("JMS message selector length ~b exceeds maximum length ~b",
312+
rabbit_log:warning("SQL expression length ~b exceeds maximum length ~b",
314313
[length(String), ?MAX_EXPRESSION_LENGTH]),
315314
error;
316315
check_length(_) ->
317316
ok.
318317

319-
tokenize(String, JmsSelector) ->
320-
case rabbit_jms_selector_lexer:string(String) of
318+
tokenize(String, SQL) ->
319+
case rabbit_amqp_sql_lexer:string(String) of
321320
{ok, Tokens, _EndLocation} ->
322321
{ok, Tokens};
323322
{error, {_Line, _Mod, ErrDescriptor}, _Location} ->
324-
rabbit_log:warning("failed to scan JMS message selector '~ts': ~tp",
325-
[JmsSelector, ErrDescriptor]),
323+
rabbit_log:warning("failed to scan SQL expression '~ts': ~tp",
324+
[SQL, ErrDescriptor]),
326325
error
327326
end.
328327

329-
check_token_count(Tokens, JmsSelector)
328+
check_token_count(Tokens, SQL)
330329
when length(Tokens) > ?MAX_TOKENS ->
331-
rabbit_log:warning("JMS message selector '~ts' with ~b tokens exceeds token limit ~b",
332-
[JmsSelector, length(Tokens), ?MAX_TOKENS]),
330+
rabbit_log:warning("SQL expression '~ts' with ~b tokens exceeds token limit ~b",
331+
[SQL, length(Tokens), ?MAX_TOKENS]),
333332
error;
334333
check_token_count(_, _) ->
335334
ok.
336335

337-
parse(Tokens, JmsSelector) ->
338-
case rabbit_jms_selector_parser:parse(Tokens) of
336+
parse(Tokens, SQL) ->
337+
case rabbit_amqp_sql_parser:parse(Tokens) of
339338
{error, Reason} ->
340-
rabbit_log:warning("failed to parse JMS message selector '~ts': ~p",
341-
[JmsSelector, Reason]),
339+
rabbit_log:warning("failed to parse SQL expression '~ts': ~p",
340+
[SQL, Reason]),
342341
error;
343342
Ok ->
344343
Ok
345344
end.
346345

347-
transform_ast(Ast0, JmsSelector) ->
348-
try rabbit_jms_ast:map(
346+
transform_ast(Ast0, SQL) ->
347+
try rabbit_amqp_sql_ast:map(
349348
fun({identifier, Ident})
350349
when is_binary(Ident) ->
351350
{identifier, rabbit_amqp_util:section_field_name_to_atom(Ident)};
@@ -358,18 +357,18 @@ transform_ast(Ast0, JmsSelector) ->
358357
{ok, Ast}
359358
catch {unsupported_field, Name} ->
360359
rabbit_log:warning(
361-
"identifier ~ts in JMS message selector ~tp is unsupported",
362-
[Name, JmsSelector]),
360+
"identifier ~ts in SQL expression ~tp is unsupported",
361+
[Name, SQL]),
363362
error;
364363
{invalid_pattern, Reason} ->
365364
rabbit_log:warning(
366-
"failed to parse LIKE pattern for JMS message selector ~tp: ~tp",
367-
[JmsSelector, Reason]),
365+
"failed to parse LIKE pattern for SQL expression ~tp: ~tp",
366+
[SQL, Reason]),
368367
error
369368
end.
370369

371370
has_binary_identifier(Ast) ->
372-
rabbit_jms_ast:search(fun({identifier, Val}) ->
371+
rabbit_amqp_sql_ast:search(fun({identifier, Val}) ->
373372
is_binary(Val);
374373
(_Node) ->
375374
false
@@ -390,7 +389,7 @@ transform_pattern(Pattern, Escape) ->
390389
{single_percent, Chars, PercentPos} ->
391390
single_percent(Chars, PercentPos);
392391
regex ->
393-
Re = jms_pattern_to_regex(Pattern, Escape, []),
392+
Re = pattern_to_regex(Pattern, Escape, []),
394393
case re:compile("^" ++ Re ++ "$", [unicode]) of
395394
{ok, CompiledRe} ->
396395
CompiledRe;
@@ -441,23 +440,23 @@ single_percent(Chars, Pos) ->
441440
{{prefix, byte_size(PrefixBin), PrefixBin},
442441
{suffix, byte_size(SuffixBin), SuffixBin}}.
443442

444-
jms_pattern_to_regex([], _Escape, Acc) ->
443+
pattern_to_regex([], _Escape, Acc) ->
445444
lists:reverse(Acc);
446-
jms_pattern_to_regex([EscapeChar | Rest], EscapeChar, Acc) ->
445+
pattern_to_regex([EscapeChar | Rest], EscapeChar, Acc) ->
447446
case Rest of
448447
[] ->
449448
throw({invalid_pattern, invalid_escape_at_end});
450449
[NextChar | Rest1] ->
451-
jms_pattern_to_regex(Rest1, EscapeChar, escape_regex_char(NextChar) ++ Acc)
450+
pattern_to_regex(Rest1, EscapeChar, escape_regex_char(NextChar) ++ Acc)
452451
end;
453-
jms_pattern_to_regex([$% | Rest], Escape, Acc) ->
452+
pattern_to_regex([$% | Rest], Escape, Acc) ->
454453
%% % matches any sequence of characters (0 or more)
455-
jms_pattern_to_regex(Rest, Escape, [$*, $. | Acc]);
456-
jms_pattern_to_regex([$_ | Rest], Escape, Acc) ->
454+
pattern_to_regex(Rest, Escape, [$*, $. | Acc]);
455+
pattern_to_regex([$_ | Rest], Escape, Acc) ->
457456
%% _ matches exactly one character
458-
jms_pattern_to_regex(Rest, Escape, [$. | Acc]);
459-
jms_pattern_to_regex([Char | Rest], Escape, Acc) ->
460-
jms_pattern_to_regex(Rest, Escape, escape_regex_char(Char) ++ Acc).
457+
pattern_to_regex(Rest, Escape, [$. | Acc]);
458+
pattern_to_regex([Char | Rest], Escape, Acc) ->
459+
pattern_to_regex(Rest, Escape, escape_regex_char(Char) ++ Acc).
461460

462461
%% Escape user provided characters that have special meaning in Erlang regex.
463462
escape_regex_char(Char0) ->

deps/rabbit/src/rabbit_amqp_session.erl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3251,14 +3251,14 @@ parse_filters(Filter = {{symbol, ?FILTER_NAME_SQL}, Value},
32513251
Acc = {EffectiveFilters, ConsumerFilter, ConsumerArgs}) ->
32523252
case ConsumerFilter of
32533253
undefined ->
3254-
case rabbit_amqp_filter_jms:parse(Value) of
3254+
case rabbit_amqp_filter_sql:parse(Value) of
32553255
{ok, ParsedSql} ->
3256-
{[Filter | EffectiveFilters], {jms, ParsedSql}, ConsumerArgs};
3256+
{[Filter | EffectiveFilters], {sql, ParsedSql}, ConsumerArgs};
32573257
error ->
32583258
Acc
32593259
end;
32603260
_ ->
3261-
%% SQL filter expression is mutually exclusive with AMQP property filter expression.
3261+
%% SQL and property filter expressions are mutually exclusive.
32623262
Acc
32633263
end;
32643264
parse_filters(Filter = {{symbol, _Key}, Value},
@@ -3281,9 +3281,8 @@ parse_filters(Filter = {{symbol, _Key}, Value},
32813281
{property, [ParsedExpression | ParsedExpressions]},
32823282
ConsumerArgs}
32833283
end;
3284-
{jms, _} ->
3285-
%% SQL filter expression is mutually exclusive with
3286-
%% AMQP property filter expressions.
3284+
{sql, _} ->
3285+
%% SQL and property filter expressions are mutually exclusive.
32873286
Acc
32883287
end;
32893288
error ->

deps/rabbit/src/rabbit_jms_ast.erl renamed to deps/rabbit/src/rabbit_amqp_sql_ast.erl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
66

77
%% Helper functions operating on the Abstract Syntax Tree (AST)
8-
%% as returned by rabbit_jms_selector_parser:parse/1
9-
-module(rabbit_jms_ast).
8+
%% as returned by rabbit_amqp_sql_parser:parse/1
9+
-module(rabbit_amqp_sql_ast).
1010

1111
-export([search/2,
1212
map/2]).
@@ -94,8 +94,8 @@ has_binary_identifier_test() ->
9494
ok.
9595

9696
has_binary_identifier(Selector) ->
97-
{ok, Tokens, _EndLocation} = rabbit_jms_selector_lexer:string(Selector),
98-
{ok, Ast0} = rabbit_jms_selector_parser:parse(Tokens),
97+
{ok, Tokens, _EndLocation} = rabbit_amqp_sql_lexer:string(Selector),
98+
{ok, Ast0} = rabbit_amqp_sql_parser:parse(Tokens),
9999
Ast = map(fun({identifier, Ident}) when is_binary(Ident) ->
100100
{identifier, rabbit_amqp_util:section_field_name_to_atom(Ident)};
101101
(Node) ->

0 commit comments

Comments
 (0)