This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
rpc-xml /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Sep 03 10:10:49 -0700 2009 | |
| |
ChangeLog | Thu Sep 03 10:31:11 -0700 2009 | |
| |
ChangeLog.xml | Thu Sep 03 10:31:11 -0700 2009 | |
| |
MANIFEST | Fri Aug 21 05:06:56 -0700 2009 | |
| |
Makefile.PL | Thu Sep 03 10:31:11 -0700 2009 | |
| |
README | Thu Sep 03 10:31:11 -0700 2009 | |
| |
README.apache2 | Mon Jan 27 03:27:38 -0800 2003 | |
| |
ToDo | Mon Jan 27 02:45:29 -0800 2003 | |
| |
etc/ | Wed Aug 19 02:15:09 -0700 2009 | |
| |
ex/ | Thu Apr 03 02:29:05 -0700 2008 | |
| |
lib/ | Sun Oct 04 21:01:34 -0700 2009 | |
| |
methods/ | Thu Apr 03 02:29:05 -0700 2008 | |
| |
t/ | Sun Sep 27 01:02:16 -0700 2009 |
README
RPC::XML - An implementation of XML-RPC
Version: 0.69
WHAT IS IT
The RPC::XML package is an implementation of XML-RPC. The module provides
classes for sample client and server implementations, a server designed as an
Apache location-handler, and a suite of data-manipulation classes that are
used by them.
USING RPC::XML
There are not any pre-packaged executables in this distribution (except for a
utility tool). Client usage will usually be along the lines of:
use RPC::XML::Client;
...
my $client = new RPC::XML::Client
'http://www.oreillynet.com/meerkat/xml-rpc/server.php';
my $req = RPC::XML::request->new('meerkat.getChannelsBySubstring', 'perl');
my $res = $client->send_request($req);
# This returns an object of the RPC::XML::response class. This double-call
# of value() first gets a RPC::XML::* data object from the response, then
# the actual data from it:
my $value = $res->value->value;
Running a simple server is not much more involved:
use RPC::XML::Server;
...
my $srv = new RPC::XML::Server (host => 'localhost',
port => 9000);
# You would then use $srv->add_method to add some remotely-callable code
...
$srv->accept_loop; # Stays in an accept/connect loop
BUILDING/INSTALLING
This package is set up to configure and build like a typical Perl extension.
To build:
perl Makefile.PL
make && make test
If RPC::XML passes all tests, then:
make install
You may need super-user access to install.
PROBLEMS/BUG REPORTS
Please send any reports of problems or bugs to rjray@blackperl.com
SEE ALSO
XML-RPC: http://www.xmlrpc.com/spec
The Artistic 2.0: http://www.opensource.org/licenses/artistic-license-2.0.php
The LGPL 2.1: http://www.opensource.org/licenses/lgpl-2.1.php
CHANGES
* t/00_load.t
* t/01_pod.t
* t/02_pod_coverage.t
* t/10_data.t
* t/11_base64_fh.t
* t/12_nil.t
* t/15_serialize.t
* t/20_parser.t
* t/50_client.t
Minor clean-up of old CVS/SVN keyword references.
* lib/RPC/XML/Client.pm
* lib/RPC/XML/Parser.pm
* lib/RPC/XML/Parser/XMLParser.pm (added)
* lib/RPC/XML/ParserFactory.pm (added)
* lib/RPC/XML/Server.pm
* t/20_parser.t (deleted)
* t/20_xml_parser.t (added)
* t/29_parserfactory.t (added)
* t/40_server.t
* t/util.pl
Converted parsing to be from a specific class to a
parser-factory style. This included renaming the existing
parser class and shuffling tests around.
* t/70_compression_detect.t
Cleaner approach to scrubbing symbol tables.
* t/00_load.t
* t/01_pod.t
* t/02_pod_coverage.t
* t/03_meta.t (added)
* t/04_minimumversion.t (added)
* t/05_critic.t (added)
New tests, and developer-specific tests changed to only run in
my copy.
* lib/RPC/XML/Client.pm
* lib/RPC/XML/Parser/XMLParser.pm
* lib/RPC/XML/Server.pm
* t/11_base64_fh.t
* t/15_serialize.t
* t/20_xml_parser.t
* t/30_method.t
* t/35_namespaces.t
* t/40_server.t
* t/41_server_hang.t
* t/50_client.t
RT #47806: One more patch for Windows compatibility with
temp-files.
* lib/Apache/RPC/Server.pm
* lib/Apache/RPC/Status.pm
* lib/RPC/XML.pm
* lib/RPC/XML/Client.pm
* lib/RPC/XML/Function.pm
* lib/RPC/XML/Method.pm
* lib/RPC/XML/Parser.pm
* lib/RPC/XML/Parser/XMLParser.pm
* lib/RPC/XML/ParserFactory.pm
* lib/RPC/XML/Procedure.pm
* lib/RPC/XML/Server.pm
Fixes based on Perl::Critic and other best-practices techniques.
* etc/make_method
Also made changes based on Perl::Critic.
* MANIFEST
* lib/RPC/XML/Parser.pm
* lib/RPC/XML/Parser/XMLParser.pm
Expanded definition of the interface to include push-parsing
methods. Documented these and added stubs to
RPC::XML::Parser::XMLParser that throw exceptions when called
by a non-push-parser instance. Reflected changes to test suite
in MANIFEST.
* lib/RPC/XML/Parser/XMLParser.pm
Slight tweak to make this 5.6.1-compatible.
* lib/RPC/XML/Procedure.pm
* lib/RPC/XML/Server.pm
RT #42736: Support user-adjustment of server-based faults, and
normalize the existing faults.
* lib/RPC/XML/Procedure.pm
Fix encoding of return values from call() when the method
called is of type Function (and thus has no strict signatures).
* lib/RPC/XML.pm
* t/13_no_deep_recursion.t (added)
RT #41063: Re-visit how arrays and structs are smart-encoded
and constructed, so as to avoid cyclical data structure
references.







