[ 
https://issues.apache.org/jira/browse/AXIS2-4188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713944#action_12713944
 ] 

Ben Reif commented on AXIS2-4188:
---------------------------------

Thanks for the information. Is this in a new version of Axis2? I'm using Axis2 
1.4, and I don't see where the JMSSender looks for the 
MessageContext.TRANSPORT_HEADERS property to set values on the JMS Message?

> JMSSender not extendable
> ------------------------
>
>                 Key: AXIS2-4188
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4188
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: transports
>    Affects Versions: 1.5, 1.4.1, 1.4
>         Environment: All
>            Reporter: Ben Reif
>            Assignee: Asankha C. Perera
>   Original Estimate: 0.03h
>  Remaining Estimate: 0.03h
>
> We need to extend the org.apache.axis2.transport.jms.JMSSender class so that 
> we can add some custom properties to the JMS Message (most likely via the 
> MessageContext. However, the class is full of private methods which must be 
> copied into a sub-class, and it also uses other classes such as 
> JMSOutTransportInfo that only have package protected constructors. 
> This class is clearly meant to be extended because you can redefine the 
> implementation class in the axis2.xml. But rather then just extending it and 
> overridding a method, you have to jump through hoops and copy a bunch of code 
> to do so. 
> In my opinion this is one of the most frustrating things about using open 
> source code. Many Apache (and Sun projects as well) have a bad habit of 
> coding everything private, package protected, or sometimes even making things 
> final! Most open source projects these days are designed to be extended, but 
> coding things in this way defeats that purpose.  
> Sorry for the long rant and rave, overall I think Axis2 is really great, but 
> could you keep this in mind moving forward :) , and at least maybe make these 
> methods protected in the next release:
> JMSSender - 
> private Message createJMSMessage(MessageContext msgContext, Session session)  
> throws JMSException {
> }
> private void setProperty(Message message, MessageContext msgCtx, String key){
> }
> private String getProperty(MessageContext mc, String key) {
> }
> private static void handleException(String s) {
> }
> private static void handleException(String s, Exception e) {
> }
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to