import SOAP-WSDL 2.00_27 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_27
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_27.tar.gz
This commit is contained in:
Martin Kutter
2007-12-19 14:17:23 -08:00
committed by Michael G. Schwern
parent 3cfeebae54
commit eb096ad88e
67 changed files with 1147 additions and 277 deletions

View File

@@ -1,12 +1,14 @@
use lib '../lib';
use lib '../example/lib';
use lib '../../SOAP-WSDL_XS/blib/lib';
use lib '../../SOAP-WSDL_XS/blib/arch';
use strict;
package MyData;
my $XML;
sub xml {
return $XML if ($XML);
open my $fh, 'person.xml' or die 'cannot open data file';
$XML = join '', <$fh>;
close $fh;
@@ -17,12 +19,10 @@ package MyTransport;
use SOAP::WSDL::Factory::Transport;
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );
sub send_receive {
# warn MyData::xml;
return MyData::xml();
}
sub new { return bless {}, 'MyTransport' };
package main;
use Benchmark qw(cmpthese);
@@ -34,68 +34,80 @@ use XML::Compile::Util;#use Data::Dumper;
#print Dumper $result;
use XML::Compile::WSDL11;
use XML::Simple;
use SOAP::WSDL::Deserializer::XSD_XS;
use SOAP::WSDL::Factory::Deserializer;
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
use SOAP::Lite;
use MyInterfaces::TestService::TestPort;
my $tester = XML::Compile::SOAP::Tester->new();
my $action = pack_type 'http://example.org', 'ListPerson';
sub ListPerson(@) { MyData::xml };
my $compile = XML::Compile::WSDL11->new('../example/wsdl/Person.wsdl');
# $tester->fromWSDL($wsdl);
$tester->actionCallback($action, \&ListPerson);
# I have to lookup the methods from the WSDL
$tester->actionCallback($action, \&MyData::xml);
my $call = $compile->compileClient('ListPerson');
# I have to lookup the parameters from the WSDL
my $result = $call->({ in => undef});
#use Data::Dumper;
#print Dumper $result;
# Initialize SOAP::Lite
my $deserializer = SOAP::Deserializer->new();
# Initialize SOAP::WSDL interface
my $soap = MyInterfaces::TestService::TestPort->new();
# Load all classes - XML::Compile has created everything before, too
$soap->ListPerson({});
$result = $soap->ListPerson({});
#print $result;
#exit;
# # register for SOAP 1.1
SOAP::WSDL::Factory::Deserializer->register('1.1' => 'SOAP::WSDL::Deserializer::XSD_XS' );
my $wsdl_xs = MyInterfaces::TestService::TestPort->new();
# trigger loading of XML Data
{
use bytes;
print "XML length (bytes): " . length( MyData::xml() ), "\n";
}
my @data = ();
my $n = 0;
print "Benchmark conducted with
SOAP::Lite - $SOAP::Lite::VERSION
SOAP::WSDL - $SOAP::WSDL::Client::VERSION
SOAP::WSDL_XS - $SOAP::WSDL::Deserializer::XSD_XS::VERSION;
XML::Compile::SOAP - $XML::Compile::SOAP::VERSION
XML::Simple - $XML::Simple::VERSION
Benchmark $n: Push result on list
Benchmark $n: Store result in private variable and destroy it
";
$n++;
print "Benchmark $n: Store result in private variable and destroy it\n";
cmpthese 100, {
cmpthese 300, {
'XML::Simple' => sub { my $result = XMLin( MyData::xml() )},
'SOAP::WSDL' => sub { my $result = $soap->ListPerson({}) },
'XML::Compile::SOAP' => sub { my $result = $call->() },
'SOAP::WSDL_XS' => sub { my $result = @data, $wsdl_xs->ListPerson({}) },
'SOAP::Lite' => sub { my $result = $deserializer->deserialize( MyData::xml() )}
};
print "Benchmark $n: Push result on list\n";
$n++;
cmpthese 100, {
cmpthese 500, {
'XML::Simple' => sub { push @data, XMLin( MyData::xml() )},
'SOAP::WSDL' => sub { push @data, $soap->ListPerson({}) },
'XML::Compile::SOAP' => sub { push @data, $call->() },
'SOAP::WSDL_XS' => sub { push @data, $wsdl_xs->ListPerson({}) },
'SOAP::Lite' => sub { push @data, $deserializer->deserialize( MyData::xml() )}
};
@data = ();
print "Benchmark $n: Play it again, Sam\n";
cmpthese 100, {
cmpthese 500, {
'XML::Simple' => sub { push @data, XMLin( MyData::xml() )},
'SOAP::WSDL' => sub { push @data, $soap->ListPerson({}) },
'SOAP::WSDL_XS' => sub { push @data, $wsdl_xs->ListPerson({}) },
'XML::Compile::SOAP' => sub { push @data, $call->() },
'SOAP::Lite' => sub { push @data, $deserializer->deserialize( MyData::xml() )}
};