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

Pétur Runólfsson updated AXIS2-4328:
------------------------------------

    Attachment: AXIS2-4328-1.patch

OK, here's a starter. This converts all methods in RPCUtil from static to 
instance methods. Objects that use RPCUtil access it through a protected method 
(that can be overridden per class) that by default calls a factory method in 
RPCUtil that looks uses a RPCUtilClass parameter to create an instance, or 
returns a default instance if the parameter is not found.

There's a couple of potential downsides to this: It breaks compatibility for 
RPCUtil (does this matter?), and RPCUtil isn't really a good name for a class 
containing instance methods. It would be possible to fix both by creating a new 
class (maybe RPCProcessor? RPCHandler?) that would have all the code in 
instance methods, and let RPCUtil have a static instance of this class that it 
would forward to.

Also, this doesn't really fix my original problem - the methods I would like to 
override are in BeanUtil and SimpleTypeMapper. If this patch is accepted, more 
patches are needed to convert those too.

> Please make RPCMessageReceiver and related classes more flexible
> ----------------------------------------------------------------
>
>                 Key: AXIS2-4328
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4328
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: adb
>    Affects Versions: 1.4.1
>            Reporter: Pétur Runólfsson
>         Attachments: AXIS2-4328-1.patch
>
>
> RPCMessageReceiver calls a number of static methods, that call other static 
> and private methods. Many of these methods are also very long. This makes it 
> near impossible to customize RPCMessageReceiver via inheritance.
> This situation would be improved a lot by this:
> * Change static methods in RPCUtil, BeanUtil, ConverterUtil, SimpleTypeMapper 
> etc. to instance methods
> * Allow subtypes to be used instead of each of those classes (for example by 
> creating instances in factory methods that may be overridden)

-- 
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