<div dir="ltr">Hi.<div><br></div><div>I am extending some classes for JMS logging, and I want to share my thoughts.</div><div><br></div><div>1) Queue and Topic Appender share a lot of common code. </div><div><br></div><div>The only difference is at JMS level (for example, QueueSession and TopicSession).</div><div>So I wonder if it is possible to implement the common code at parent level (JMSAppenderBase), using common methods (like getter getSession) and override those common methods in the children. Example:</div><div><br></div><div>Current code (JMSQueueAppender):</div><div><br></div><div>







<p class="">ObjectMessage <span class="">msg</span> = <span class="">queueSession</span>.createObjectMessage();<br>Serializable <span class="">so</span> = <span class="">pst</span>.transform(<span class="">event</span>);<br><span class="">msg</span>.setObject(<span class="">so</span>);<br><span class="">queueSender</span>.send(<span class="">msg</span>);</p>
<p class=""><br></p><p class="">Proposed code (on JMSAppenderBase):</p><p class="">ObjectMessage <span class="">msg</span> = <span class="">getSession()</span>.createObjectMessage();<br>Serializable <span class="">so</span> = <span class="">pst</span>.transform(<span class="">event</span>);<br><span class="">msg</span>.setObject(<span class="">so</span>);<br><span class="">getSender()</span>.send(<span class="">msg</span>);<br></p><p class=""><br></p><p class="">Proposed code (on JMSQueueAppender):</p><p class="">public Session getSession(){<br>    return getQueueSession()<br>}</p><p class=""><br></p><p class="">Proposed code (on JMSTopicAppender):</p><p class="">public Session getSession(){<br>    return getTopicSession()<br>}</p><p class=""><br></p></div><div>and same for getSender().</div><div><br></div><div><br></div><div>2) JMS Serialization can only send ObjectMessage. Following the same approach as encoders, it will be very useful to provide other kind of serialization, like MapMessage, TextMessage + Headers, etc.</div><div><br></div><div>Currently, I have done exactly this in my project but manually overriding the methods. Configuring the serialization through configuration will be more elegant and extensible.</div><div><br></div><div>Please, share your thoughts.</div><div><br></div><div>Regards.</div><div><br></div><div>Ramon</div></div>