The class structure of these files is a little strange, and this README explains it. Our goal is to make JSON::RPC and XMLRPC::Lite both work with the same code. (That is, we want to have one WebService API, and have two frontends for it.) The problem is that these both pass different things for $self to WebService methods. When XMLRPC::Lite calls a method, $self is the name of the *class* the method is in. For example, if we call Bugzilla.version(), the first argument is Bugzilla::WebService::Bugzilla. So in order to have $self (our first argument) act correctly in XML-RPC, we make all WebService classes use base qw(Bugzilla::WebService). When JSON::RPC calls a method, $self is the JSON-RPC *server object*. In other words, it's an instance of Bugzilla::WebService::Server::JSONRPC. So we have Bugzilla::WebService::Server::JSONRPC inherit from Bugzilla::WebService.
-
Dave Lawrence authored
Bug 859118 - Bug.search called with no arguments returns all visible bugs, ignoring max_search_results and search_allow_no_criteria r/a=LpSolit
a75a42fd