You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Guillaume Nodet (JIRA)" <ji...@apache.org> on 2009/02/04 14:58:59 UTC

[jira] Resolved: (SM-1786) Refactor JmsProviderEndpoint to not use reflection to call protected method on Spring JmsTemplate class

     [ https://issues.apache.org/activemq/browse/SM-1786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guillaume Nodet resolved SM-1786.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 3.2.4
                   servicemix-jms-2008.02
         Assignee: Guillaume Nodet

Sending        src/main/java/org/apache/servicemix/jms/endpoints/JmsProviderEndpoint.java
Transmitting file data .
Committed revision 740741.

Sending        servicemix-jms/src/main/java/org/apache/servicemix/jms/endpoints/JmsProviderEndpoint.java
Transmitting file data .
Committed revision 740743.

> Refactor JmsProviderEndpoint to not use reflection to call protected method on Spring JmsTemplate class
> -------------------------------------------------------------------------------------------------------
>
>                 Key: SM-1786
>                 URL: https://issues.apache.org/activemq/browse/SM-1786
>             Project: ServiceMix
>          Issue Type: Improvement
>          Components: servicemix-jms
>    Affects Versions: servicemix-jms-2008.01
>            Reporter: Torsten Mielke
>            Assignee: Guillaume Nodet
>            Priority: Minor
>             Fix For: servicemix-jms-2008.02, 3.2.4
>
>         Attachments: SM-1786.patch
>
>
> A recent fix changed JmsProviderEndpoint.java and calls the Spring JmsTemplate protected method doSend() directly via reflection. 
> {code:java}
> Method method = JmsTemplate.class.getDeclaredMethod("doSend", Session.class, Destination.class, MessageCreator.class);
> method.setAccessible(true);
> method.invoke(template, session, dest, new MessageCreator() {
>   public Message createMessage(Session session) throws JMSException {
>      return message;
>   }
> });
> {code}
> This new approach is based on java.lang.reflect and uses private methods of the JmsTemplate. Do the latest problem related to JmsProviderEndpoint really justify using private methods?
> Please consider refactoring the code above.

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