From fb990d8fca6148d52ff50e9c03a9eb1f11bc7ade Mon Sep 17 00:00:00 2001 From: Josh Kim Date: Wed, 25 Aug 2021 12:20:17 -0700 Subject: [PATCH] fix: Remove hard-coded /user prefix for broker queues (#56) Signed-off-by: Josh Kim --- src/bridge/broker-connector.ts | 12 +++++------- src/bridge/stomp.parser.spec.ts | 4 ++-- src/bridge/stomp.parser.ts | 14 ++++++-------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/bridge/broker-connector.ts b/src/bridge/broker-connector.ts index 11d0c25..b264cf1 100644 --- a/src/bridge/broker-connector.ts +++ b/src/bridge/broker-connector.ts @@ -315,7 +315,7 @@ export class BrokerConnector implements EventBusEnabled { const subscriptionId = this.generateSubscriptionId(session.id, cleanedChannel); const brokerPrefix = galacticConfig.isPrivate ? config.queueLocation : config.topicLocation; const destination = - StompParser.generateGalacticDesintation(brokerPrefix, cleanedChannel, galacticConfig.isPrivate); + StompParser.generateGalacticDesintation(brokerPrefix, cleanedChannel); const subscription = StompParser.generateStompBrokerSubscriptionRequest( session.id, destination, subscriptionId, galacticConfig.isPrivate, brokerPrefix @@ -358,7 +358,7 @@ export class BrokerConnector implements EventBusEnabled { const brokerPrefix = this._privateChannels.get(channel)[sessionBrokerIdentity] ? config.queueLocation : config.topicLocation; const destination = - StompParser.generateGalacticDesintation(brokerPrefix, cleanedChannel, isPrivateChannel); + StompParser.generateGalacticDesintation(brokerPrefix, cleanedChannel); const subscription = StompParser.generateStompBrokerSubscriptionRequest( session.id, destination, subscriptionId, isPrivateChannel, brokerPrefix); @@ -741,7 +741,7 @@ export class BrokerConnector implements EventBusEnabled { ); const channel: string = StompParser.convertTopicOrQueueToChannel( - data.destination, data.brokerPrefix, data.isQueue); + data.destination, data.brokerPrefix); const chan: Observable = this.bus.api.getRequestChannel(channel, this.getName()); @@ -764,8 +764,7 @@ export class BrokerConnector implements EventBusEnabled { let respChan = StompParser.convertSubscriptionToChannel( data.destination, - data.isQueue ? session.config.queueLocation : session.config.topicLocation, - data.isQueue); + data.isQueue ? session.config.queueLocation : session.config.topicLocation); let payload = JSON.parse(msg.body); const respChannelObject = this.bus.api.getChannelObject(respChan); @@ -820,8 +819,7 @@ export class BrokerConnector implements EventBusEnabled { // let the bus know. this.sendBusCommandResponseRaw(message, BrokerConnectorChannel.subscription, true); - const channel: string = StompParser.convertTopicOrQueueToChannel( - data.destination, data.brokerPrefix, data.isQueue); + const channel: string = StompParser.convertTopicOrQueueToChannel(data.destination, data.brokerPrefix); const sub: Subscription = session.getGalacticSubscription(channel); diff --git a/src/bridge/stomp.parser.spec.ts b/src/bridge/stomp.parser.spec.ts index 64489a3..926409a 100644 --- a/src/bridge/stomp.parser.spec.ts +++ b/src/bridge/stomp.parser.spec.ts @@ -248,12 +248,12 @@ describe('Stomp Parser [stomp.parser]', () => { // public channel const subA = StompParser.convertSubscriptionToChannel( - 'puppykitty/', 'kitty', false); + 'puppykitty/', 'kitty'); expect(subA).toEqual('puppy'); // private channel const subB = StompParser.convertSubscriptionToChannel( - '/userpuppy/kitty', 'puppy', true); + 'puppy/kitty', 'puppy'); expect(subB).toEqual('kitty'); } diff --git a/src/bridge/stomp.parser.ts b/src/bridge/stomp.parser.ts index 40185f7..a7acff3 100644 --- a/src/bridge/stomp.parser.ts +++ b/src/bridge/stomp.parser.ts @@ -202,24 +202,22 @@ export class StompParser { } // create galactic topic/queue detination - public static generateGalacticDesintation(dest: string, channel: string, isQueue: boolean): string { - return (isQueue ? '/user' : '') + dest + '/' + channel; + public static generateGalacticDesintation(dest: string, channel: string): string { + return dest + '/' + channel; } // convert destination back into a channel public static convertSubscriptionToChannel(subscription: string, - topicOrQueueDesintation: string, - isQueue: boolean): string { + topicOrQueueDesintation: string): string { return subscription.replace( - (isQueue ? '/user' + topicOrQueueDesintation : topicOrQueueDesintation) + '/', + topicOrQueueDesintation + '/', ''); } // convert topic/queue back into a channel public static convertTopicOrQueueToChannel(subscription: string, - brokerPrefix: string, - isQueue: boolean): string { + brokerPrefix: string): string { return subscription.replace( - isQueue ? '/user' + brokerPrefix + '/' : brokerPrefix + '/', '').trim(); + brokerPrefix + '/', '').trim(); } }