Skip to content

Commit c22ad7d

Browse files
authored
[Service Bus] Remove Connection Context from ServiceBusMessage (Azure#12398)
In Azure#12216, we moved the code to settle a message and renew its lock from the ServiceBusMessageImpl to the ServiceBusReceiver. After this move, the only dependency left on the ConnectionContext in the ServiceBusMessageImpl is for the DataTransformer. This PR updates the ServiceBusMessage constructor to take the DataTransformer instead of the ConnectionContext and thus remove this dependency altogether. This closes Azure#9944 as we no longer need to track the context or the receiver on the message. This closes Azure#10620 as well. Since the context is not being tracked on the message anymore, it does not matter that the data transformer is tracked on the context.
1 parent 4839eeb commit c22ad7d

File tree

6 files changed

+15
-19
lines changed

6 files changed

+15
-19
lines changed

sdk/servicebus/service-bus/src/core/batchingReceiver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ export class BatchingReceiverLite {
253253

254254
this._createServiceBusMessage = (context: MessageAndDelivery) => {
255255
return new ServiceBusMessageImpl(
256-
_connectionContext,
256+
_connectionContext.dataTransformer,
257257
context.message!,
258258
context.delivery!,
259259
true,

sdk/servicebus/service-bus/src/core/managementClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ export class ManagementClient extends LinkEntity<RequestResponseLink> {
802802
for (const msg of messages) {
803803
const decodedMessage = RheaMessageUtil.decode(msg.message);
804804
const message = new ServiceBusMessageImpl(
805-
this._context,
805+
this._context.dataTransformer,
806806
decodedMessage as any,
807807
{ tag: msg["lock-token"] } as any,
808808
false,

sdk/servicebus/service-bus/src/core/streamingReceiver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export class StreamingReceiver extends MessageReceiver {
222222
}
223223

224224
const bMessage: ServiceBusMessageImpl = new ServiceBusMessageImpl(
225-
this._context,
225+
this._context.dataTransformer,
226226
context.message!,
227227
context.delivery!,
228228
true,

sdk/servicebus/service-bus/src/serviceBusMessage.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) Microsoft Corporation.
22
// Licensed under the MIT license.
33

4-
import { AmqpAnnotatedMessage, Constants } from "@azure/core-amqp";
4+
import { AmqpAnnotatedMessage, Constants, DataTransformer } from "@azure/core-amqp";
55
import { Buffer } from "buffer";
66
import Long from "long";
77
import {
@@ -11,7 +11,6 @@ import {
1111
uuid_to_string,
1212
Message as RheaMessage
1313
} from "rhea-promise";
14-
import { ConnectionContext } from "./connectionContext";
1514
import { messageLogger as logger } from "./log";
1615
import { ReceiveMode } from "./models";
1716
import { reorderLockToken } from "./util/utils";
@@ -770,7 +769,7 @@ export class ServiceBusMessageImpl implements ServiceBusReceivedMessage {
770769
* @internal
771770
*/
772771
constructor(
773-
private readonly _context: ConnectionContext,
772+
private readonly _dataTransformer: DataTransformer,
774773
msg: RheaMessage,
775774
delivery: Delivery,
776775
shouldReorderLockToken: boolean,
@@ -783,7 +782,7 @@ export class ServiceBusMessageImpl implements ServiceBusReceivedMessage {
783782
this.lockToken = undefined;
784783
}
785784
if (msg.body) {
786-
this.body = this._context.dataTransformer.decode(msg.body);
785+
this.body = this._dataTransformer.decode(msg.body);
787786
}
788787
// TODO: _amqpAnnotatedMessage is already being populated in fromRheaMessage(), no need to do it twice
789788
this._amqpAnnotatedMessage = AmqpAnnotatedMessage.fromRheaMessage(msg);

sdk/servicebus/service-bus/src/session/messageSession.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ export class MessageSession extends LinkEntity<Receiver> {
621621
}
622622

623623
const bMessage = new ServiceBusMessageImpl(
624-
this._context,
624+
this._context.dataTransformer,
625625
context.message!,
626626
context.delivery!,
627627
true,

sdk/servicebus/service-bus/test/internal/serviceBusMessage.spec.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// Licensed under the MIT license.
33

44
import { ServiceBusMessageImpl } from "../../src/serviceBusMessage";
5-
import { ConnectionContext } from "../../src/connectionContext";
65
import {
76
Delivery,
87
uuid_to_string,
@@ -11,15 +10,13 @@ import {
1110
Message as RheaMessage
1211
} from "rhea-promise";
1312
import chai from "chai";
14-
import { Constants } from "@azure/core-amqp";
13+
import { Constants, DataTransformer } from "@azure/core-amqp";
1514
const assert = chai.assert;
1615

17-
const fakeContext = {
18-
dataTransformer: {
19-
encode: (data) => data,
20-
decode: (data) => data
21-
}
22-
} as ConnectionContext;
16+
const fakeDataTransformer = {
17+
encode: (data) => data,
18+
decode: (data) => data
19+
} as DataTransformer;
2320
const fakeDelivery = {} as Delivery;
2421

2522
describe("ServiceBusMessageImpl LockToken unit tests", () => {
@@ -38,7 +35,7 @@ describe("ServiceBusMessageImpl LockToken unit tests", () => {
3835

3936
it("Lock token in peekLock mode", () => {
4037
const sbMessage = new ServiceBusMessageImpl(
41-
fakeContext,
38+
fakeDataTransformer,
4239
amqpMessage,
4340
{ tag: fakeDeliveryTag } as Delivery,
4441
false,
@@ -50,7 +47,7 @@ describe("ServiceBusMessageImpl LockToken unit tests", () => {
5047

5148
it("Lock token in receiveAndDelete mode", () => {
5249
const sbMessage = new ServiceBusMessageImpl(
53-
fakeContext,
50+
fakeDataTransformer,
5451
amqpMessage,
5552
{ tag: fakeDeliveryTag } as Delivery,
5653
false,
@@ -99,7 +96,7 @@ describe("ServiceBusMessageImpl AmqpAnnotations unit tests", () => {
9996
};
10097

10198
const sbMessage = new ServiceBusMessageImpl(
102-
fakeContext,
99+
fakeDataTransformer,
103100
amqpMessage,
104101
fakeDelivery,
105102
false,

0 commit comments

Comments
 (0)