@@ -18,10 +18,8 @@ import ballerina/jballerina.java;
1818
1919# JMS Message Producer client object to send messages to both queues and topics.
2020public isolated client class MessageProducer {
21- private final Session session ;
22-
21+
2322 isolated function init(Session session , Destination? destination = ()) returns Error ? {
24- self .session = session ;
2523 return self .externInit (session , destination );
2624 }
2725
@@ -37,12 +35,7 @@ public isolated client class MessageProducer {
3735 #
3836 # + message - Message to be sent to the JMS provider
3937 # + return - A `jms:Error` if there is an error or else `()`
40- isolated remote function send(Message message ) returns Error ? {
41- handle jmsMessage = check getJmsMessage (self .session , message );
42- return self .externSend (jmsMessage );
43- }
44-
45- isolated function externSend(handle message ) returns Error ? = @java :Method {
38+ isolated remote function send(Message message ) returns Error ? = @java :Method {
4639 name : " send" ,
4740 'class : " io.ballerina.stdlib.java.jms.producer.Actions"
4841 } external ;
@@ -55,13 +48,7 @@ public isolated client class MessageProducer {
5548 # + destination - Destination used for the message sender
5649 # + message - Message to be sent to the JMS provider
5750 # + return - A `jms:Error` if there is an error or else `()`
58- isolated remote function sendTo(Destination destination , Message message ) returns Error ? {
59- handle jmsMessage = check getJmsMessage (self .session , message );
60- return self .externSendTo (self .session , destination , jmsMessage );
61- }
62-
63- isolated function externSendTo(Session session , Destination destination , handle message )
64- returns Error ? = @java :Method {
51+ isolated remote function sendTo(Destination destination , Message message ) returns Error ? = @java :Method {
6552 name : " sendTo" ,
6653 'class : " io.ballerina.stdlib.java.jms.producer.Actions"
6754 } external ;
@@ -75,72 +62,3 @@ public isolated client class MessageProducer {
7562 'class : " io.ballerina.stdlib.java.jms.producer.Actions"
7663 } external ;
7764};
78-
79- isolated function getJmsMessage(Session session , Message message ) returns handle | Error {
80- handle jmsMessage = check constructJmsMessage(session, message);
81- check updateReplyToMessageField (session , jmsMessage , message .replyTo );
82- check updateCorrelationIdField (jmsMessage , message .correlationId );
83- return jmsMessage ;
84- }
85-
86- const string TEXT = " TEXT" ;
87- const string BYTES = " BYTES" ;
88- const string MAP = " MAP" ;
89-
90- isolated function constructJmsMessage(Session session , Message message ) returns handle | Error {
91- if message is TextMessage {
92- handle jmsMessage = check session .createJmsMessage (TEXT );
93- error ? result = trap externWriteText (jmsMessage , java : fromString (message .content ));
94- if result is error {
95- return error Error (result .message ());
96- }
97- return jmsMessage ;
98- } else if message is BytesMessage {
99- handle jmsMessage = check session .createJmsMessage (BYTES );
100- error ? result = trap externWriteBytes (jmsMessage , message .content );
101- if result is error {
102- return error Error (result .message ());
103- }
104- return jmsMessage ;
105- } else if message is MapMessage {
106- handle jmsMessage = check session .createJmsMessage (MAP );
107- error ? result = trap populateMapMessage (jmsMessage , message .content );
108- if result is error {
109- return error Error (result .message ());
110- }
111- return jmsMessage ;
112- }
113- return error Error (" Unidentified message type" );
114- }
115-
116- isolated function updateReplyToMessageField(Session session , handle jmsMessage ,
117- Destination? replyTo = ()) returns Error ? {
118- if replyTo is () {
119- return ;
120- }
121- check externSetReplyTo (session , jmsMessage , replyTo );
122- }
123-
124- isolated function updateCorrelationIdField(handle jmsMessage , string ? correlationId = ()) returns Error ? {
125- if correlationId is () {
126- return ;
127- }
128- check externSetCorrelationId (jmsMessage , correlationId );
129- }
130-
131- isolated function populateMapMessage(handle mapMessage , map < anydata > keyValues ) returns error ? {
132- foreach string 'key in keyValues .keys () {
133- var value = keyValues .get ('key );
134- if value is int {
135- check externSetLong (mapMessage , java : fromString ('key ), value );
136- } else if value is float {
137- check externSetDouble (mapMessage , java : fromString ('key ), value );
138- } else if value is boolean {
139- check externSetBoolean (mapMessage , java : fromString ('key ), value );
140- } else if value is string {
141- check externSetString (mapMessage , java : fromString ('key ), java : fromString (value ));
142- } else if value is byte [] {
143- check externSetBytes (mapMessage , java : fromString ('key ), value );
144- }
145- }
146- }
0 commit comments