5858 ec entityConnector // if an entityConnector is present, a message should send disposition via mgmt
5959 useSession bool
6060 sessionID * string
61+ receiver * amqp.Receiver
6162 }
6263
6364 // DispositionAction represents the action to notify Azure Service Bus of the Message's disposition
@@ -133,7 +134,7 @@ func NewMessage(data []byte) *Message {
133134
134135// getLinkName returns associated link name or empty string if receiver or link is not defined,
135136func (m * Message ) getLinkName () string {
136- return m .message .GetLinkName ()
137+ return m .message .LinkName ()
137138}
138139
139140// CompleteAction will notify Azure Service Bus that the message was successfully handled and should be deleted from the
@@ -187,7 +188,7 @@ func (m *Message) Complete(ctx context.Context) error {
187188 return sendMgmtDisposition (ctx , m , disposition {Status : completedDisposition })
188189 }
189190
190- return m .message . Accept (ctx )
191+ return m .receiver . AcceptMessage (ctx , m . message )
191192}
192193
193194// Abandon will notify Azure Service Bus the message failed but should be re-queued for delivery.
@@ -202,7 +203,7 @@ func (m *Message) Abandon(ctx context.Context) error {
202203 return sendMgmtDisposition (ctx , m , d )
203204 }
204205
205- return m .message . Modify (ctx , false , false , nil )
206+ return m .receiver . ModifyMessage (ctx , m . message , false , false , nil )
206207}
207208
208209// Defer will set aside the message for later processing
@@ -228,7 +229,7 @@ func (m *Message) Defer(ctx context.Context) error {
228229 _ , span := m .startSpanFromContext (ctx , "sb.Message.Defer" )
229230 defer span .End ()
230231
231- return m .message . Modify (ctx , true , true , nil )
232+ return m .receiver . ModifyMessage (ctx , m . message , true , true , nil )
232233}
233234
234235// Release will notify Azure Service Bus the message should be re-queued without failure.
@@ -259,7 +260,7 @@ func (m *Message) DeadLetter(ctx context.Context, err error) error {
259260 Condition : amqp .ErrorCondition (ErrorInternalError ),
260261 Description : err .Error (),
261262 }
262- return m .message . Reject (ctx , & amqpErr )
263+ return m .receiver . RejectMessage (ctx , m . message , & amqpErr )
263264
264265}
265266
@@ -291,7 +292,7 @@ func (m *Message) DeadLetterWithInfo(ctx context.Context, err error, condition M
291292 Description : err .Error (),
292293 Info : info ,
293294 }
294- return m .message . Reject (ctx , & amqpErr )
295+ return m .receiver . RejectMessage (ctx , m . message , & amqpErr )
295296}
296297
297298// ScheduleAt will ensure Azure Service Bus delivers the message after the time specified
@@ -402,14 +403,15 @@ func addMapToAnnotations(a amqp.Annotations, m map[string]interface{}) amqp.Anno
402403 return a
403404}
404405
405- func messageFromAMQPMessage (msg * amqp.Message ) (* Message , error ) {
406- return newMessage (msg .GetData (), msg )
406+ func messageFromAMQPMessage (msg * amqp.Message , r * amqp. Receiver ) (* Message , error ) {
407+ return newMessage (msg .GetData (), msg , r )
407408}
408409
409- func newMessage (data []byte , amqpMsg * amqp.Message ) (* Message , error ) {
410+ func newMessage (data []byte , amqpMsg * amqp.Message , r * amqp. Receiver ) (* Message , error ) {
410411 msg := & Message {
411- Data : data ,
412- message : amqpMsg ,
412+ Data : data ,
413+ message : amqpMsg ,
414+ receiver : r ,
413415 }
414416
415417 if amqpMsg == nil {
0 commit comments