@@ -85,6 +85,12 @@ parse(_Name, {destination, Dest}) ->
8585connect_source (State = #{source := Src = #{resource_decl := {M , F , MFArgs },
8686 queue := QName0 ,
8787 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 ,
8894 QState = rabbit_queue_type :init (),
8995 {User , VHost } = get_user_vhost_from_amqp_param (Uri ),
9096 % % 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},
106112connect_dest (State = #{dest := Dest = #{resource_decl := {M , F , MFArgs },
107113 uris := [Uri | _ ]},
108114 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 ,
110121 {User , VHost } = get_user_vhost_from_amqp_param (Uri ),
111122 apply (M , F , MFArgs ++ [VHost , User ]),
112123
@@ -137,13 +148,7 @@ init_source(State = #{source := #{queue_r := QName,
137148 vhost := VHost } = Current } = Src ,
138149 name := Name ,
139150 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 },
147152 MaxLinkCredit = max_link_credit (),
148153 CTag = consumer_tag (Name ),
149154 case rabbit_amqqueue :with (
@@ -501,10 +506,6 @@ expand_routing_key_shortcut(<<>>, <<>>, MRDQ) ->
501506expand_routing_key_shortcut (_QueueNameBin , RoutingKey , _ ) ->
502507 RoutingKey .
503508
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
508509check_fun (QName , VHost , User ) ->
509510 Method = # 'queue.declare' {queue = QName ,
510511 passive = true },
0 commit comments