Skip to content

Commit c7b277f

Browse files
committed
upgrade go to 1.22; upgrade packages; migrate azure/go-amqp to 1.0.5
Signed-off-by: Jose Silva <[email protected]>
1 parent 9a61fca commit c7b277f

File tree

15 files changed

+235
-235
lines changed

15 files changed

+235
-235
lines changed

protocol/amqp/v2/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
module github.com/cloudevents/sdk-go/protocol/amqp/v2
22

3-
go 1.18
3+
go 1.21
44

55
replace github.com/cloudevents/sdk-go/v2 => ../../../v2
66

77
require (
8-
github.com/Azure/go-amqp v0.17.0
8+
github.com/Azure/go-amqp v1.0.5
99
github.com/cloudevents/sdk-go/v2 v2.5.0
10-
github.com/stretchr/testify v1.8.0
10+
github.com/stretchr/testify v1.9.0
1111
)
1212

1313
require (
1414
github.com/davecgh/go-spew v1.1.1 // indirect
15-
github.com/google/go-cmp v0.5.1 // indirect
15+
github.com/google/go-cmp v0.5.9 // indirect
1616
github.com/json-iterator/go v1.1.10 // indirect
1717
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
1818
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect

protocol/amqp/v2/go.sum

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
1-
github.com/Azure/go-amqp v0.17.0 h1:HHXa3149nKrI0IZwyM7DRcRy5810t9ZICDutn4BYzj4=
2-
github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg=
1+
github.com/Azure/go-amqp v1.0.5 h1:po5+ljlcNSU8xtapHTe8gIc8yHxCzC03E8afH2g1ftU=
2+
github.com/Azure/go-amqp v1.0.5/go.mod h1:vZAogwdrkbyK3Mla8m/CxSc/aKdnTZ4IbPxl51Y5WZE=
33
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
44
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
55
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
66
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
77
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
8-
github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
9-
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
9+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1010
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
1111
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
1212
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
1313
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
14+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
1415
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
1516
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
1617
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=
1718
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
1819
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
20+
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
1921
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2022
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2123
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
22-
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
2324
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
24-
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
25-
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
26-
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
25+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
26+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
2727
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
28+
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
2829
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
30+
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
2931
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
30-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
31-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
32+
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
3233
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3334
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
34-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
35+
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3536
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
3637
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

protocol/amqp/v2/message.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const prefix = "cloudEvents:" // Name prefix for AMQP properties that hold CE at
2222

2323
var (
2424
// Use the package path as AMQP error condition name
25-
condition = amqp.ErrorCondition(reflect.TypeOf(Message{}).PkgPath())
25+
condition = amqp.ErrCond(reflect.TypeOf(Message{}).PkgPath())
2626
specs = spec.WithPrefix(prefix)
2727
)
2828

protocol/amqp/v2/options.go

Lines changed: 0 additions & 53 deletions
This file was deleted.

protocol/amqp/v2/protocol.go

Lines changed: 60 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,8 @@ import (
1515
)
1616

1717
type Protocol struct {
18-
connOpts []amqp.ConnOption
19-
sessionOpts []amqp.SessionOption
20-
senderLinkOpts []amqp.LinkOption
21-
receiverLinkOpts []amqp.LinkOption
22-
2318
// AMQP
24-
Client *amqp.Client
19+
Client *amqp.Conn
2520
Session *amqp.Session
2621
ownedClient bool
2722
Node string
@@ -35,54 +30,60 @@ type Protocol struct {
3530
}
3631

3732
// NewProtocolFromClient creates a new amqp transport.
38-
func NewProtocolFromClient(client *amqp.Client, session *amqp.Session, queue string, opts ...Option) (*Protocol, error) {
33+
func NewProtocolFromClient(
34+
ctx context.Context,
35+
client *amqp.Conn,
36+
session *amqp.Session,
37+
queue string,
38+
senderOptions *amqp.SenderOptions,
39+
receiverOptions *amqp.ReceiverOptions,
40+
) (*Protocol, error) {
3941
t := &Protocol{
40-
Node: queue,
41-
senderLinkOpts: []amqp.LinkOption(nil),
42-
receiverLinkOpts: []amqp.LinkOption(nil),
43-
Client: client,
44-
Session: session,
45-
}
46-
if err := t.applyOptions(opts...); err != nil {
47-
return nil, err
42+
Node: queue,
43+
Client: client,
44+
Session: session,
4845
}
4946

50-
t.senderLinkOpts = append(t.senderLinkOpts, amqp.LinkTargetAddress(queue))
51-
5247
// Create a sender
53-
amqpSender, err := session.NewSender(t.senderLinkOpts...)
48+
amqpSender, err := session.NewSender(ctx, queue, senderOptions)
5449
if err != nil {
5550
_ = client.Close()
5651
_ = session.Close(context.Background())
5752
return nil, err
5853
}
59-
t.Sender = NewSender(amqpSender).(*sender)
54+
t.Sender = NewSender(amqpSender, &amqp.SendOptions{}).(*sender)
6055
t.SenderContextDecorators = []func(context.Context) context.Context{}
6156

62-
t.receiverLinkOpts = append(t.receiverLinkOpts, amqp.LinkSourceAddress(t.Node))
63-
amqpReceiver, err := t.Session.NewReceiver(t.receiverLinkOpts...)
57+
amqpReceiver, err := t.Session.NewReceiver(ctx, t.Node, receiverOptions)
6458
if err != nil {
6559
return nil, err
6660
}
67-
t.Receiver = NewReceiver(amqpReceiver).(*receiver)
61+
t.Receiver = NewReceiver(amqpReceiver, &amqp.ReceiveOptions{}).(*receiver)
6862
return t, nil
6963
}
7064

7165
// NewProtocol creates a new amqp transport.
72-
func NewProtocol(server, queue string, connOption []amqp.ConnOption, sessionOption []amqp.SessionOption, opts ...Option) (*Protocol, error) {
73-
client, err := amqp.Dial(server, connOption...)
66+
func NewProtocol(
67+
ctx context.Context,
68+
server, queue string,
69+
connOptions *amqp.ConnOptions,
70+
sessionOptions *amqp.SessionOptions,
71+
senderOptions *amqp.SenderOptions,
72+
receiverOptions *amqp.ReceiverOptions,
73+
) (*Protocol, error) {
74+
client, err := amqp.Dial(ctx, server, connOptions)
7475
if err != nil {
7576
return nil, err
7677
}
7778

7879
// Open a session
79-
session, err := client.NewSession(sessionOption...)
80+
session, err := client.NewSession(ctx, sessionOptions)
8081
if err != nil {
8182
_ = client.Close()
8283
return nil, err
8384
}
8485

85-
p, err := NewProtocolFromClient(client, session, queue, opts...)
86+
p, err := NewProtocolFromClient(ctx, client, session, queue, senderOptions, receiverOptions)
8687
if err != nil {
8788
return nil, err
8889
}
@@ -92,69 +93,70 @@ func NewProtocol(server, queue string, connOption []amqp.ConnOption, sessionOpti
9293
}
9394

9495
// NewSenderProtocolFromClient creates a new amqp sender transport.
95-
func NewSenderProtocolFromClient(client *amqp.Client, session *amqp.Session, address string, opts ...Option) (*Protocol, error) {
96+
func NewSenderProtocolFromClient(
97+
ctx context.Context,
98+
client *amqp.Conn,
99+
session *amqp.Session,
100+
address string,
101+
senderOptions *amqp.SenderOptions,
102+
) (*Protocol, error) {
96103
t := &Protocol{
97-
Node: address,
98-
senderLinkOpts: []amqp.LinkOption(nil),
99-
receiverLinkOpts: []amqp.LinkOption(nil),
100-
Client: client,
101-
Session: session,
104+
Node: address,
105+
Client: client,
106+
Session: session,
102107
}
103-
if err := t.applyOptions(opts...); err != nil {
104-
return nil, err
105-
}
106-
t.senderLinkOpts = append(t.senderLinkOpts, amqp.LinkTargetAddress(address))
108+
107109
// Create a sender
108-
amqpSender, err := session.NewSender(t.senderLinkOpts...)
110+
amqpSender, err := session.NewSender(ctx, address, senderOptions)
109111
if err != nil {
110112
_ = client.Close()
111113
_ = session.Close(context.Background())
112114
return nil, err
113115
}
114-
t.Sender = NewSender(amqpSender).(*sender)
116+
t.Sender = NewSender(amqpSender, &amqp.SendOptions{}).(*sender)
115117
t.SenderContextDecorators = []func(context.Context) context.Context{}
116118

117119
return t, nil
118120
}
119121

120122
// NewReceiverProtocolFromClient creates a new receiver amqp transport.
121-
func NewReceiverProtocolFromClient(client *amqp.Client, session *amqp.Session, address string, opts ...Option) (*Protocol, error) {
123+
func NewReceiverProtocolFromClient(
124+
ctx context.Context,
125+
client *amqp.Conn,
126+
session *amqp.Session,
127+
address string,
128+
receiverOptions *amqp.ReceiverOptions,
129+
) (*Protocol, error) {
122130
t := &Protocol{
123-
Node: address,
124-
senderLinkOpts: []amqp.LinkOption(nil),
125-
receiverLinkOpts: []amqp.LinkOption(nil),
126-
Client: client,
127-
Session: session,
128-
}
129-
if err := t.applyOptions(opts...); err != nil {
130-
return nil, err
131+
Node: address,
132+
Client: client,
133+
Session: session,
131134
}
132135

133136
t.Node = address
134-
t.receiverLinkOpts = append(t.receiverLinkOpts, amqp.LinkSourceAddress(address))
135-
amqpReceiver, err := t.Session.NewReceiver(t.receiverLinkOpts...)
137+
amqpReceiver, err := t.Session.NewReceiver(ctx, address, receiverOptions)
136138
if err != nil {
137139
return nil, err
138140
}
139-
t.Receiver = NewReceiver(amqpReceiver).(*receiver)
141+
t.Receiver = NewReceiver(amqpReceiver, &amqp.ReceiveOptions{}).(*receiver)
140142
return t, nil
141143
}
142144

143145
// NewSenderProtocol creates a new sender amqp transport.
144-
func NewSenderProtocol(server, address string, connOption []amqp.ConnOption, sessionOption []amqp.SessionOption, opts ...Option) (*Protocol, error) {
145-
client, err := amqp.Dial(server, connOption...)
146+
func NewSenderProtocol(ctx context.Context, server, address string, connOptions *amqp.ConnOptions, sessionOptions *amqp.SessionOptions, senderOptions *amqp.SenderOptions) (*Protocol, error) {
147+
client, err := amqp.Dial(ctx, server, connOptions)
146148
if err != nil {
147149
return nil, err
148150
}
149151

150152
// Open a session
151-
session, err := client.NewSession(sessionOption...)
153+
session, err := client.NewSession(ctx, sessionOptions)
152154
if err != nil {
153155
_ = client.Close()
154156
return nil, err
155157
}
156158

157-
p, err := NewSenderProtocolFromClient(client, session, address, opts...)
159+
p, err := NewSenderProtocolFromClient(ctx, client, session, address, senderOptions)
158160
if err != nil {
159161
return nil, err
160162
}
@@ -164,20 +166,20 @@ func NewSenderProtocol(server, address string, connOption []amqp.ConnOption, ses
164166
}
165167

166168
// NewReceiverProtocol creates a new receiver amqp transport.
167-
func NewReceiverProtocol(server, address string, connOption []amqp.ConnOption, sessionOption []amqp.SessionOption, opts ...Option) (*Protocol, error) {
168-
client, err := amqp.Dial(server, connOption...)
169+
func NewReceiverProtocol(ctx context.Context, server, address string, connOptions *amqp.ConnOptions, sessionOptions *amqp.SessionOptions, receiverOptions *amqp.ReceiverOptions) (*Protocol, error) {
170+
client, err := amqp.Dial(ctx, server, connOptions)
169171
if err != nil {
170172
return nil, err
171173
}
172174

173175
// Open a session
174-
session, err := client.NewSession(sessionOption...)
176+
session, err := client.NewSession(ctx, sessionOptions)
175177
if err != nil {
176178
_ = client.Close()
177179
return nil, err
178180
}
179181

180-
p, err := NewReceiverProtocolFromClient(client, session, address, opts...)
182+
p, err := NewReceiverProtocolFromClient(ctx, client, session, address, receiverOptions)
181183

182184
if err != nil {
183185
return nil, err
@@ -187,15 +189,6 @@ func NewReceiverProtocol(server, address string, connOption []amqp.ConnOption, s
187189
return p, nil
188190
}
189191

190-
func (t *Protocol) applyOptions(opts ...Option) error {
191-
for _, fn := range opts {
192-
if err := fn(t); err != nil {
193-
return err
194-
}
195-
}
196-
return nil
197-
}
198-
199192
func (t *Protocol) Close(ctx context.Context) (err error) {
200193
if t.ownedClient {
201194
// Closing the client will close at cascade sender and receiver

protocol/amqp/v2/receiver.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ import (
1919
const serverDown = "session ended by server"
2020

2121
// receiver wraps an amqp.Receiver as a binding.Receiver
22-
type receiver struct{ amqp *amqp.Receiver }
22+
type receiver struct {
23+
amqp *amqp.Receiver
24+
options *amqp.ReceiveOptions
25+
}
2326

2427
func (r *receiver) Receive(ctx context.Context) (binding.Message, error) {
25-
m, err := r.amqp.Receive(ctx)
28+
m, err := r.amqp.Receive(ctx, r.options)
2629
if err != nil {
2730
if err == ctx.Err() {
2831
return nil, io.EOF
@@ -38,6 +41,6 @@ func (r *receiver) Receive(ctx context.Context) (binding.Message, error) {
3841
}
3942

4043
// NewReceiver create a new Receiver which wraps an amqp.Receiver in a binding.Receiver
41-
func NewReceiver(amqp *amqp.Receiver) protocol.Receiver {
42-
return &receiver{amqp: amqp}
44+
func NewReceiver(amqp *amqp.Receiver, options *amqp.ReceiveOptions) protocol.Receiver {
45+
return &receiver{amqp: amqp, options: options}
4346
}

0 commit comments

Comments
 (0)