@@ -85,6 +85,12 @@ parse(_Name, {destination, Dest}) ->
85
85
connect_source (State = #{source := Src = #{resource_decl := {M , F , MFArgs },
86
86
queue := QName0 ,
87
87
uris := [Uri | _ ]}}) ->
88
+ case rabbit_feature_flags :is_enabled ('rabbitmq_4.0.0' ) of
89
+ true ->
90
+ ok ;
91
+ false ->
92
+ exit ({shutdown , feature_flag_rabbitmq_4_0_0_is_disabled })
93
+ end ,
88
94
QState = rabbit_queue_type :init (),
89
95
{User , VHost } = get_user_vhost_from_amqp_param (Uri ),
90
96
% % We handle the most recently declared queue to use anonymous functions
@@ -106,7 +112,12 @@ connect_source(State = #{source := Src = #{resource_decl := {M, F, MFArgs},
106
112
connect_dest (State = #{dest := Dest = #{resource_decl := {M , F , MFArgs },
107
113
uris := [Uri | _ ]},
108
114
ack_mode := AckMode }) ->
109
- % % Shall we get the user from an URI or something else?
115
+ case rabbit_feature_flags :is_enabled ('rabbitmq_4.0.0' ) of
116
+ true ->
117
+ ok ;
118
+ false ->
119
+ exit ({shutdown , feature_flag_rabbitmq_4_0_0_is_disabled })
120
+ end ,
110
121
{User , VHost } = get_user_vhost_from_amqp_param (Uri ),
111
122
apply (M , F , MFArgs ++ [VHost , User ]),
112
123
@@ -137,13 +148,7 @@ init_source(State = #{source := #{queue_r := QName,
137
148
vhost := VHost } = Current } = Src ,
138
149
name := Name ,
139
150
ack_mode := AckMode }) ->
140
- % % TODO put this shovel behind the rabbitmq_4.0.0 feature flag
141
- Mode = case rabbit_feature_flags :is_enabled ('rabbitmq_4.0.0' ) of
142
- true ->
143
- {credited , ? INITIAL_DELIVERY_COUNT };
144
- false ->
145
- {credited , credit_api_v1 }
146
- end ,
151
+ Mode = {credited , ? INITIAL_DELIVERY_COUNT },
147
152
MaxLinkCredit = max_link_credit (),
148
153
CTag = consumer_tag (Name ),
149
154
case rabbit_amqqueue :with (
@@ -501,10 +506,6 @@ expand_routing_key_shortcut(<<>>, <<>>, MRDQ) ->
501
506
expand_routing_key_shortcut (_QueueNameBin , RoutingKey , _ ) ->
502
507
RoutingKey .
503
508
504
- % % TODO A missing queue stops the shovel but because the error reason
505
- % % the failed status is not stored. Would not be it more useful to
506
- % % report it??? This is a rabbit_shovel_worker issues, last terminate
507
- % % clause
508
509
check_fun (QName , VHost , User ) ->
509
510
Method = # 'queue.declare' {queue = QName ,
510
511
passive = true },
0 commit comments