Skip to content
This repository was archived by the owner on Oct 12, 2023. It is now read-only.

Commit 4974e2f

Browse files
authored
Update to latest go-amqp (#254)
Includes updates due to API breaking changes. Cleaned up various linter bugs. Removed some dead code.
1 parent 0f63768 commit 4974e2f

17 files changed

+53
-106
lines changed

amqphandler.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
)
3131

3232
type amqpHandler interface {
33-
Handle(ctx context.Context, msg *amqp.Message) error
33+
Handle(ctx context.Context, msg *amqp.Message, r *amqp.Receiver) error
3434
}
3535

3636
// amqpAdapterHandler is a middleware handler that translates amqp messages into servicebus messages
@@ -46,10 +46,10 @@ func newAmqpAdapterHandler(receiver *Receiver, next Handler) *amqpAdapterHandler
4646
}
4747
}
4848

49-
func (h *amqpAdapterHandler) Handle(ctx context.Context, msg *amqp.Message) error {
49+
func (h *amqpAdapterHandler) Handle(ctx context.Context, msg *amqp.Message, r *amqp.Receiver) error {
5050
const optName = "sb.amqpHandler.Handle"
5151

52-
event, err := messageFromAMQPMessage(msg)
52+
event, err := messageFromAMQPMessage(msg, r)
5353
if err != nil {
5454
_, span := h.receiver.startConsumerSpanFromContext(ctx, optName)
5555
span.Logger().Error(err)

auto_forward_example_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"os"
77
"time"
88

9-
"github.com/Azure/azure-service-bus-go"
9+
servicebus "github.com/Azure/azure-service-bus-go"
1010
)
1111

1212
type MessagePrinter struct{}
@@ -79,12 +79,12 @@ func Example_autoForward() {
7979
}
8080

8181
func ensureQueue(ctx context.Context, qm *servicebus.QueueManager, name string, opts ...servicebus.QueueManagementOption) (*servicebus.QueueEntity, error) {
82-
qe, err := qm.Get(ctx, name)
82+
_, err := qm.Get(ctx, name)
8383
if err == nil {
8484
_ = qm.Delete(ctx, name)
8585
}
8686

87-
qe, err = qm.Put(ctx, name, opts...)
87+
qe, err := qm.Put(ctx, name, opts...)
8888
if err != nil {
8989
fmt.Println(err)
9090
return nil, err

batch_disposition.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func (bdi *BatchDispositionIterator) Done() bool {
5858

5959
// Next iterates to the next LockToken
6060
func (bdi *BatchDispositionIterator) Next() (uuid *uuid.UUID) {
61-
if done := bdi.Done(); done == false {
61+
if done := bdi.Done(); !done {
6262
uuid = bdi.LockTokenIDs[bdi.cursor]
6363
bdi.cursor++
6464
}

entity.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (e *entity) getEntity() *entity {
9292
// unable to complete the operation, or an empty slice of messages and an instance of "ErrNoMessages" signifying that
9393
// there are currently no messages in the queue with a sequence ID larger than previously viewed ones.
9494
func (re *receivingEntity) Peek(ctx context.Context, options ...PeekOption) (MessageIterator, error) {
95-
ctx, span := re.entity.startSpanFromContext(ctx, "sb.entity.Peek")
95+
_, span := re.entity.startSpanFromContext(ctx, "sb.entity.Peek")
9696
defer span.End()
9797

9898
return newPeekIterator(re.entity, options...)

errors.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func (e ErrMissingField) Error() string {
6262
}
6363

6464
func (e ErrMalformedMessage) Error() string {
65-
return fmt.Sprintf("message was expected in the form of []byte was not a []byte")
65+
return "message was expected in the form of []byte was not a []byte"
6666
}
6767

6868
// NewErrIncorrectType lets you skip using the `reflect` package. Just provide a variable of the desired type as

go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ module github.com/Azure/azure-service-bus-go
33
go 1.12
44

55
require (
6-
github.com/Azure/azure-amqp-common-go/v3 v3.2.0
6+
github.com/Azure/azure-amqp-common-go/v3 v3.2.1
77
github.com/Azure/azure-sdk-for-go v51.1.0+incompatible
8-
github.com/Azure/go-amqp v0.13.13
8+
github.com/Azure/go-amqp v0.16.0
99
github.com/Azure/go-autorest/autorest v0.11.18
1010
github.com/Azure/go-autorest/autorest/adal v0.9.13
1111
github.com/Azure/go-autorest/autorest/date v0.3.0
1212
github.com/Azure/go-autorest/autorest/to v0.4.0
13+
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
1314
github.com/devigned/tab v0.1.1
1415
github.com/joho/godotenv v1.3.0
1516
github.com/mitchellh/mapstructure v1.3.3

go.sum

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
github.com/Azure/azure-amqp-common-go/v3 v3.2.0 h1:BK/3P4TW4z2HLD6G5tMlHRvptOxxi4s9ee5r8sdHBUs=
2-
github.com/Azure/azure-amqp-common-go/v3 v3.2.0/go.mod h1:zN7QL/vfCsq3XQxQaTkg4ScO786CA2rQnZ1LXX7QryE=
1+
github.com/Azure/azure-amqp-common-go/v3 v3.2.1 h1:uQyDk81yn5hTP1pW4Za+zHzy97/f4vDz9o1d/exI4j4=
2+
github.com/Azure/azure-amqp-common-go/v3 v3.2.1/go.mod h1:O6X1iYHP7s2x7NjUKsXVhkwWrQhxrd+d8/3rRadj4CI=
33
github.com/Azure/azure-sdk-for-go v51.1.0+incompatible h1:7uk6GWtUqKg6weLv2dbKnzwb0ml1Qn70AdtRccZ543w=
44
github.com/Azure/azure-sdk-for-go v51.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
5-
github.com/Azure/go-amqp v0.13.13 h1:OBPwCO50EzniOyZR0M4VbGJYDxceIy3SFOnKVMJktdY=
6-
github.com/Azure/go-amqp v0.13.13/go.mod h1:D5ZrjQqB1dyp1A+G73xeL/kNn7D5qHJIIsNNps7YNmk=
5+
github.com/Azure/go-amqp v0.16.0 h1:6mhxUxaKLjMtHlGqzeih/LKqjUPLZxbM6zwfz5/C4NQ=
6+
github.com/Azure/go-amqp v0.16.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg=
77
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
88
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
99
github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM=
@@ -74,8 +74,6 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OH
7474
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
7575
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=
7676
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
77-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
78-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
7977
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
8078
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
8179
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=

message.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type (
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,
135136
func (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 {

message_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func (suite *serviceBusSuite) TestAMQPMessageToMessage() {
173173
Data: [][]byte{[]byte("foo")},
174174
}
175175

176-
msg, err := messageFromAMQPMessage(aMsg)
176+
msg, err := messageFromAMQPMessage(aMsg, nil)
177177
if suite.NoError(err) {
178178
suite.Equal(msg.ID, aMsg.Properties.MessageID, "messageID")
179179
suite.Equal(*msg.GroupSequence, aMsg.Properties.GroupSequence, "groupSequence")

namespace.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ func (ns *Namespace) negotiateClaim(ctx context.Context, client *amqp.Client, en
282282
tab.For(refreshCtx).Error(err)
283283
select {
284284
case <-refreshCtx.Done():
285-
break
285+
return
286286
case <-time.After(5 * time.Second):
287287
// retry
288288
}

0 commit comments

Comments
 (0)