From 9023aa06a4d8f9ea1778f157baf79a419664d31b Mon Sep 17 00:00:00 2001 From: Martin Kutter Date: Fri, 15 May 2009 14:52:28 -0800 Subject: [PATCH] import SOAP-WSDL 2.00.10 from CPAN git-cpan-module: SOAP-WSDL git-cpan-version: 2.00.10 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz --- Build.PL | 2 +- Changes | 31 +- MANIFEST | 1 + META.yml | 171 +++++------ Makefile.PL | 2 +- .../test/java/helloworld/HelloWorldTest.java | 15 + lib/SOAP/WSDL.pm | 6 +- lib/SOAP/WSDL/Base.pm | 2 +- lib/SOAP/WSDL/Binding.pm | 2 +- lib/SOAP/WSDL/Client.pm | 33 ++- lib/SOAP/WSDL/Client/Base.pm | 6 +- lib/SOAP/WSDL/Definitions.pm | 6 +- lib/SOAP/WSDL/Deserializer/Hash.pm | 6 +- lib/SOAP/WSDL/Deserializer/SOM.pm | 6 +- lib/SOAP/WSDL/Deserializer/XSD.pm | 6 +- lib/SOAP/WSDL/Expat/Base.pm | 2 +- lib/SOAP/WSDL/Expat/Message2Hash.pm | 2 +- lib/SOAP/WSDL/Expat/MessageParser.pm | 8 +- lib/SOAP/WSDL/Expat/MessageStreamParser.pm | 6 +- lib/SOAP/WSDL/Expat/WSDLParser.pm | 8 +- lib/SOAP/WSDL/Factory/Deserializer.pm | 2 +- lib/SOAP/WSDL/Factory/Generator.pm | 2 +- lib/SOAP/WSDL/Factory/Serializer.pm | 6 +- lib/SOAP/WSDL/Factory/Transport.pm | 6 +- lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm | 2 +- lib/SOAP/WSDL/Generator/PrefixResolver.pm | 2 +- lib/SOAP/WSDL/Generator/Template.pm | 4 +- .../WSDL/Generator/Template/Plugin/XSD.pm | 14 +- lib/SOAP/WSDL/Generator/Template/XSD.pm | 2 +- .../Generator/Template/XSD/complexType.tt | 5 +- lib/SOAP/WSDL/Generator/Visitor.pm | 2 +- lib/SOAP/WSDL/Generator/Visitor/Typemap.pm | 2 +- lib/SOAP/WSDL/Manual/Cookbook.pod | 66 ++++- lib/SOAP/WSDL/Message.pm | 2 +- lib/SOAP/WSDL/OpMessage.pm | 2 +- lib/SOAP/WSDL/Operation.pm | 2 +- lib/SOAP/WSDL/Part.pm | 2 +- lib/SOAP/WSDL/Port.pm | 2 +- lib/SOAP/WSDL/PortType.pm | 2 +- lib/SOAP/WSDL/SOAP/Address.pm | 2 +- lib/SOAP/WSDL/SOAP/Body.pm | 2 +- lib/SOAP/WSDL/SOAP/Header.pm | 2 +- lib/SOAP/WSDL/SOAP/HeaderFault.pm | 2 +- lib/SOAP/WSDL/SOAP/Operation.pm | 2 +- lib/SOAP/WSDL/SOAP/Typelib/Fault.pm | 8 + lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm | 139 ++++++--- lib/SOAP/WSDL/Serializer/XSD.pm | 6 +- lib/SOAP/WSDL/Server.pm | 2 +- lib/SOAP/WSDL/Server/CGI.pm | 2 +- lib/SOAP/WSDL/Server/Mod_Perl2.pm | 2 +- lib/SOAP/WSDL/Server/Simple.pm | 2 +- lib/SOAP/WSDL/Service.pm | 2 +- lib/SOAP/WSDL/Transport/HTTP.pm | 6 +- lib/SOAP/WSDL/Transport/Loopback.pm | 2 +- lib/SOAP/WSDL/Transport/Test.pm | 2 +- lib/SOAP/WSDL/TypeLookup.pm | 2 +- lib/SOAP/WSDL/Types.pm | 2 +- lib/SOAP/WSDL/XSD/Annotation.pm | 2 +- lib/SOAP/WSDL/XSD/Attribute.pm | 2 +- lib/SOAP/WSDL/XSD/AttributeGroup.pm | 2 +- lib/SOAP/WSDL/XSD/Builtin.pm | 2 +- lib/SOAP/WSDL/XSD/ComplexType.pm | 2 +- lib/SOAP/WSDL/XSD/Element.pm | 2 +- lib/SOAP/WSDL/XSD/Enumeration.pm | 2 +- lib/SOAP/WSDL/XSD/FractionDigits.pm | 2 +- lib/SOAP/WSDL/XSD/Group.pm | 2 +- lib/SOAP/WSDL/XSD/Length.pm | 2 +- lib/SOAP/WSDL/XSD/MaxExclusive.pm | 2 +- lib/SOAP/WSDL/XSD/MaxInclusive.pm | 2 +- lib/SOAP/WSDL/XSD/MaxLength.pm | 2 +- lib/SOAP/WSDL/XSD/MinExclusive.pm | 2 +- lib/SOAP/WSDL/XSD/MinInclusive.pm | 2 +- lib/SOAP/WSDL/XSD/MinLength.pm | 2 +- lib/SOAP/WSDL/XSD/Pattern.pm | 2 +- lib/SOAP/WSDL/XSD/Schema.pm | 2 +- lib/SOAP/WSDL/XSD/Schema/Builtin.pm | 6 +- lib/SOAP/WSDL/XSD/SimpleType.pm | 2 +- lib/SOAP/WSDL/XSD/TotalDigits.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/Attribute.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/Builtin.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm | 2 +- lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm | 68 ++++- lib/SOAP/WSDL/XSD/Typelib/Element.pm | 6 +- lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm | 8 +- lib/SOAP/WSDL/XSD/WhiteSpace.pm | 2 +- t/CodeFirst/ComplexType.pm | 0 t/CodeFirst/element.pm | 0 t/CodeFirst/sequence.pm | 0 t/CodeFirst/test.pl | 77 ++++- t/SOAP/WSDL/Client.t | 110 ++++--- t/SOAP/WSDL/Generator/XSD_dot_names.t | 4 +- t/SOAP/WSDL/XSD/Typelib/ComplexType.t | 20 +- .../wsdl/generator_test_dot_names.wsdl | 12 +- t/lib/CodeFirst.pm | 270 +++++++++++++++--- 97 files changed, 895 insertions(+), 375 deletions(-) create mode 100644 lib/SOAP/WSDL/SOAP/Typelib/Fault.pm mode change 100644 => 100755 t/CodeFirst/ComplexType.pm mode change 100644 => 100755 t/CodeFirst/element.pm mode change 100644 => 100755 t/CodeFirst/sequence.pm mode change 100644 => 100755 t/CodeFirst/test.pl mode change 100644 => 100755 t/lib/CodeFirst.pm diff --git a/Build.PL b/Build.PL index 9d990e7..a7670bf 100644 --- a/Build.PL +++ b/Build.PL @@ -5,7 +5,7 @@ $build = Module::Build->new( create_makefile_pl => 'small', dist_abstract => 'SOAP with WSDL support', dist_name => 'SOAP-WSDL', - dist_version => '2.00.09', + dist_version => '2.00.10', module_name => 'SOAP::WSDL', license => 'artistic', requires => { diff --git a/Changes b/Changes index 89d5358..4eef000 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,4 @@ -Release notes for SOAP::WSDL 2.00.07 +Release notes for SOAP::WSDL 2.00.10 ------- I'm proud to present a new release of SOAP::WSDL. @@ -37,6 +37,35 @@ Features: The following changes have been made: +2.00.10 - May 15 2009 + +The following bugs have been fixed (the numbers in square brackets are the +tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921): +The numbers with # are CPAN RT IDs (http://rt.cpan.org/). + + * #44546: XML Schema types with names cuase errors when including anonymous types + SOAP::WSDL now handles element names with "." correctly + + * #45037 ComplexTypes' elements in different namespaces not serialized + correctly + SOAP::WSDL now serializes elements in different namespaces correctly + + * #43769 Fault11 serialization issue when passed Element for detail + The detail fault element is now automatically wrapped into an appropriate + detail object and serialized correctly. + Note that passing a list as details content is not supported yet. + + * #43674 Fault not caught/propagated in SOAP::WSDL::Client::call + Deserializer faults in SOAP::WSDL::Client now propagate correctly to the + caller. + +The following uncategorized improvements have been made: + + * improved Java example: Commented test class + + * improved documentation: Added Cookbook entry for HTTP Negotiate Authentication + (Kerberos). + 2.00.09 - Feb 22 2009 The following bugs have been fixed (the numbers in square brackets are the diff --git a/MANIFEST b/MANIFEST index b84c2e5..8852063 100644 --- a/MANIFEST +++ b/MANIFEST @@ -197,6 +197,7 @@ lib/SOAP/WSDL/SOAP/Body.pm lib/SOAP/WSDL/SOAP/Header.pm lib/SOAP/WSDL/SOAP/HeaderFault.pm lib/SOAP/WSDL/SOAP/Operation.pm +lib/SOAP/WSDL/SOAP/Typelib/Fault.pm lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm lib/SOAP/WSDL/Transport/HTTP.pm lib/SOAP/WSDL/Transport/Loopback.pm diff --git a/META.yml b/META.yml index b73c455..7e780ca 100644 --- a/META.yml +++ b/META.yml @@ -1,12 +1,12 @@ --- name: SOAP-WSDL -version: 2.00.09 +version: 2.00.10 author: - 'Martin Kutter ' abstract: SOAP with WSDL support license: artistic resources: - license: ~ + license: http://opensource.org/licenses/artistic-license.php requires: Class::Std::Fast: 0.0.5 Data::Dumper: 0 @@ -41,220 +41,225 @@ build_requires: provides: SOAP::WSDL: file: lib/SOAP/WSDL.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Base: file: lib/SOAP/WSDL/Base.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Binding: file: lib/SOAP/WSDL/Binding.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Client: file: lib/SOAP/WSDL/Client.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Client::Base: file: lib/SOAP/WSDL/Client/Base.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Definitions: file: lib/SOAP/WSDL/Definitions.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Deserializer::Hash: file: lib/SOAP/WSDL/Deserializer/Hash.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Deserializer::SOM: file: lib/SOAP/WSDL/Deserializer/SOM.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Deserializer::XSD: file: lib/SOAP/WSDL/Deserializer/XSD.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Expat::Base: file: lib/SOAP/WSDL/Expat/Base.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Expat::Message2Hash: file: lib/SOAP/WSDL/Expat/Message2Hash.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Expat::MessageParser: file: lib/SOAP/WSDL/Expat/MessageParser.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Expat::MessageStreamParser: file: lib/SOAP/WSDL/Expat/MessageStreamParser.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Expat::WSDLParser: file: lib/SOAP/WSDL/Expat/WSDLParser.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Factory::Deserializer: file: lib/SOAP/WSDL/Factory/Deserializer.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Factory::Generator: file: lib/SOAP/WSDL/Factory/Generator.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Factory::Serializer: file: lib/SOAP/WSDL/Factory/Serializer.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Factory::Transport: file: lib/SOAP/WSDL/Factory/Transport.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Iterator::WSDL11: file: lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::PrefixResolver: file: lib/SOAP/WSDL/Generator/PrefixResolver.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Template: file: lib/SOAP/WSDL/Generator/Template.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Template::Plugin::XSD: file: lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Template::XSD: file: lib/SOAP/WSDL/Generator/Template/XSD.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Visitor: file: lib/SOAP/WSDL/Generator/Visitor.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Generator::Visitor::Typemap: file: lib/SOAP/WSDL/Generator/Visitor/Typemap.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Message: file: lib/SOAP/WSDL/Message.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::OpMessage: file: lib/SOAP/WSDL/OpMessage.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Operation: file: lib/SOAP/WSDL/Operation.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Part: file: lib/SOAP/WSDL/Part.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Port: file: lib/SOAP/WSDL/Port.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::PortType: file: lib/SOAP/WSDL/PortType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::SOAP::Address: file: lib/SOAP/WSDL/SOAP/Address.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::SOAP::Body: file: lib/SOAP/WSDL/SOAP/Body.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::SOAP::Header: file: lib/SOAP/WSDL/SOAP/Header.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::SOAP::HeaderFault: file: lib/SOAP/WSDL/SOAP/HeaderFault.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::SOAP::Operation: file: lib/SOAP/WSDL/SOAP/Operation.pm - version: 2.00.09 + version: 2.00.10 + SOAP::WSDL::SOAP::Typelib::Fault: + file: lib/SOAP/WSDL/SOAP/Typelib/Fault.pm + version: 2.00.10 SOAP::WSDL::SOAP::Typelib::Fault11: file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm - version: 2.00.09 + version: 2.00.10 + SOAP::WSDL::SOAP::Typelib::Fault11Detail: + file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm SOAP::WSDL::Serializer::XSD: file: lib/SOAP/WSDL/Serializer/XSD.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Server: file: lib/SOAP/WSDL/Server.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Server::CGI: file: lib/SOAP/WSDL/Server/CGI.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Server::Mod_Perl2: file: lib/SOAP/WSDL/Server/Mod_Perl2.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Server::Simple: file: lib/SOAP/WSDL/Server/Simple.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Service: file: lib/SOAP/WSDL/Service.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Transport::HTTP: file: lib/SOAP/WSDL/Transport/HTTP.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Transport::Loopback: file: lib/SOAP/WSDL/Transport/Loopback.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Transport::Test: file: lib/SOAP/WSDL/Transport/Test.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::TypeLookup: file: lib/SOAP/WSDL/TypeLookup.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::Types: file: lib/SOAP/WSDL/Types.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Annotation: file: lib/SOAP/WSDL/XSD/Annotation.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Attribute: file: lib/SOAP/WSDL/XSD/Attribute.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::AttributeGroup: file: lib/SOAP/WSDL/XSD/AttributeGroup.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Builtin: file: lib/SOAP/WSDL/XSD/Builtin.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::ComplexType: file: lib/SOAP/WSDL/XSD/ComplexType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Element: file: lib/SOAP/WSDL/XSD/Element.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Enumeration: file: lib/SOAP/WSDL/XSD/Enumeration.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::FractionDigits: file: lib/SOAP/WSDL/XSD/FractionDigits.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Group: file: lib/SOAP/WSDL/XSD/Group.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Length: file: lib/SOAP/WSDL/XSD/Length.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MaxExclusive: file: lib/SOAP/WSDL/XSD/MaxExclusive.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MaxInclusive: file: lib/SOAP/WSDL/XSD/MaxInclusive.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MaxLength: file: lib/SOAP/WSDL/XSD/MaxLength.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MinExclusive: file: lib/SOAP/WSDL/XSD/MinExclusive.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MinInclusive: file: lib/SOAP/WSDL/XSD/MinInclusive.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::MinLength: file: lib/SOAP/WSDL/XSD/MinLength.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Pattern: file: lib/SOAP/WSDL/XSD/Pattern.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Schema: file: lib/SOAP/WSDL/XSD/Schema.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Schema::Builtin: file: lib/SOAP/WSDL/XSD/Schema/Builtin.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::SimpleType: file: lib/SOAP/WSDL/XSD/SimpleType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::TotalDigits: file: lib/SOAP/WSDL/XSD/TotalDigits.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Attribute: file: lib/SOAP/WSDL/XSD/Typelib/Attribute.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::AttributeSet: file: lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Builtin: file: lib/SOAP/WSDL/XSD/Typelib/Builtin.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Builtin::ENTITY: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm SOAP::WSDL::XSD::Typelib::Builtin::ID: @@ -279,14 +284,14 @@ provides: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm SOAP::WSDL::XSD::Typelib::Builtin::anyType: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Builtin::anyURI: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm SOAP::WSDL::XSD::Typelib::Builtin::base64Binary: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm SOAP::WSDL::XSD::Typelib::Builtin::boolean: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Builtin::byte: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/byte.pm SOAP::WSDL::XSD::Typelib::Builtin::date: @@ -339,7 +344,7 @@ provides: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/string.pm SOAP::WSDL::XSD::Typelib::Builtin::time: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Builtin::token: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/token.pm SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte: @@ -352,20 +357,20 @@ provides: file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm SOAP::WSDL::XSD::Typelib::ComplexType: file: lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::Element: file: lib/SOAP/WSDL/XSD/Typelib/Element.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::SimpleType: file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::Typelib::SimpleType::restriction: file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm - version: 2.00.09 + version: 2.00.10 SOAP::WSDL::XSD::WhiteSpace: file: lib/SOAP/WSDL/XSD/WhiteSpace.pm - version: 2.00.09 -generated_by: Module::Build version 0.31012 + version: 2.00.10 +generated_by: Module::Build version 0.280801 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.2.html version: 1.2 diff --git a/Makefile.PL b/Makefile.PL index 45248d6..5db0001 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,4 +1,4 @@ -# Note: this file was auto-generated by Module::Build::Compat version 0.31012 +# Note: this file was auto-generated by Module::Build::Compat version 0.2808_01 require 5.8.0; use Module::Build::Compat 0.02; diff --git a/example/java/cxf/src/test/java/helloworld/HelloWorldTest.java b/example/java/cxf/src/test/java/helloworld/HelloWorldTest.java index a604281..3ea1c79 100644 --- a/example/java/cxf/src/test/java/helloworld/HelloWorldTest.java +++ b/example/java/cxf/src/test/java/helloworld/HelloWorldTest.java @@ -7,10 +7,25 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +// Spring JUnit Test runner @RunWith(SpringJUnit4ClassRunner.class) + +// load spring context from here @ContextConfiguration(locations = { "classpath:test-context.xml"}) +/** Test class for the HelloWorld service + * + * It's more of a integration test, not a Unit test (though using + * JUnit4). + * + * Fire up the SOAP server in example/server/hello_simple.pl before + * running - the test will fail if it can't find the appropriate SOAP server + * at http://localhost:8081/ + * + */ public class HelloWorldTest { + + // soapClient bean automatically provided by spring @Autowired private Service1Soap soapClient; diff --git a/lib/SOAP/WSDL.pm b/lib/SOAP/WSDL.pm index a5253f9..6a753ea 100644 --- a/lib/SOAP/WSDL.pm +++ b/lib/SOAP/WSDL.pm @@ -14,7 +14,7 @@ use Class::Std::Fast constructor => 'none'; use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType; use LWP::UserAgent; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %no_dispatch_of :ATTR(:name); my %wsdl_of :ATTR(:name); @@ -831,9 +831,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: WSDL.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: WSDL.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL.pm $ =cut diff --git a/lib/SOAP/WSDL/Base.pm b/lib/SOAP/WSDL/Base.pm index 75f04d9..35b773a 100644 --- a/lib/SOAP/WSDL/Base.pm +++ b/lib/SOAP/WSDL/Base.pm @@ -5,7 +5,7 @@ use List::Util; use Scalar::Util; use Carp qw(croak carp confess); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %id_of :ATTR(:name :default<()>); my %lang_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Binding.pm b/lib/SOAP/WSDL/Binding.pm index f4f8fc7..626a3d8 100644 --- a/lib/SOAP/WSDL/Binding.pm +++ b/lib/SOAP/WSDL/Binding.pm @@ -5,7 +5,7 @@ use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %operation_of :ATTR(:name :default<()>); my %type_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Client.pm b/lib/SOAP/WSDL/Client.pm index f583210..e168dc9 100644 --- a/lib/SOAP/WSDL/Client.pm +++ b/lib/SOAP/WSDL/Client.pm @@ -11,7 +11,7 @@ use SOAP::WSDL::Factory::Serializer; use SOAP::WSDL::Factory::Transport; use SOAP::WSDL::Expat::MessageParser; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %class_resolver_of :ATTR(:name :default<()>); my %no_dispatch_of :ATTR(:name :default<()>); @@ -171,20 +171,29 @@ sub call { # Try deserializing response - there may be some, # even if transport did not succeed (got a 500 response) if ( $response ) { - my ($result_body, $result_header) = eval { - $deserializer_of{ $ident }->deserialize( $response ); + # as our faults are false, returning a success marker is the only + # reliable way of determining whether the deserializer succeeded. + # Custom deserializers may return an empty list, or undef, + # and $@ is not guaranteed to be undefined. + my ($success, $result_body, $result_header) = eval { + (1, $deserializer_of{ $ident }->deserialize( $response )); }; - if (not $@) { + if (defined $success) { return wantarray ? ($result_body, $result_header) : $result_body; } - return $deserializer_of{ $ident }->generate_fault({ - code => 'soap:Server', - role => 'urn:localhost', - message => "Error deserializing message: $@. \n" - . "Message was: \n$response" - }); + elsif (blessed $@) { #}&& $@->isa('SOAP::WSDL::SOAP::Typelib::Fault11')) { + return $@; + } + else { + return $deserializer_of{ $ident }->generate_fault({ + code => 'soap:Server', + role => 'urn:localhost', + message => "Error deserializing message: $@. \n" + . "Message was: \n$response" + }); + } }; # if we had no success (Transport layer error status code) @@ -400,9 +409,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Client.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Client.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $ =cut diff --git a/lib/SOAP/WSDL/Client/Base.pm b/lib/SOAP/WSDL/Client/Base.pm index 77d4612..e21a9f9 100644 --- a/lib/SOAP/WSDL/Client/Base.pm +++ b/lib/SOAP/WSDL/Client/Base.pm @@ -4,7 +4,7 @@ use warnings; use base 'SOAP::WSDL::Client'; use Scalar::Util qw(blessed); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); sub call { my ($self, $method, $body, $header) = @_; @@ -85,9 +85,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Base.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Base.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client/Base.pm $ =cut diff --git a/lib/SOAP/WSDL/Definitions.pm b/lib/SOAP/WSDL/Definitions.pm index 3b354e9..f0ca32f 100644 --- a/lib/SOAP/WSDL/Definitions.pm +++ b/lib/SOAP/WSDL/Definitions.pm @@ -5,7 +5,7 @@ use List::Util qw(first); use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %types_of :ATTR(:name :default<[]>); my %message_of :ATTR(:name :default<[]>); @@ -115,9 +115,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Definitions.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Definitions.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Definitions.pm $ =cut diff --git a/lib/SOAP/WSDL/Deserializer/Hash.pm b/lib/SOAP/WSDL/Deserializer/Hash.pm index cf685cb..f001023 100644 --- a/lib/SOAP/WSDL/Deserializer/Hash.pm +++ b/lib/SOAP/WSDL/Deserializer/Hash.pm @@ -8,7 +8,7 @@ use SOAP::WSDL::Expat::Message2Hash; use SOAP::WSDL::Factory::Deserializer; SOAP::WSDL::Factory::Deserializer->register( '1.1', __PACKAGE__ ); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); sub BUILD { my ($self, $ident, $args_of_ref) = @_; @@ -163,9 +163,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Hash.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Hash.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/Hash.pm $ =cut diff --git a/lib/SOAP/WSDL/Deserializer/SOM.pm b/lib/SOAP/WSDL/Deserializer/SOM.pm index a3b9f3d..3ebfeb0 100644 --- a/lib/SOAP/WSDL/Deserializer/SOM.pm +++ b/lib/SOAP/WSDL/Deserializer/SOM.pm @@ -2,7 +2,7 @@ package SOAP::WSDL::Deserializer::SOM; use strict; use warnings; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); our @ISA; eval { @@ -140,9 +140,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: SOM.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: SOM.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/SOM.pm $ =cut diff --git a/lib/SOAP/WSDL/Deserializer/XSD.pm b/lib/SOAP/WSDL/Deserializer/XSD.pm index fd9597f..b046d06 100644 --- a/lib/SOAP/WSDL/Deserializer/XSD.pm +++ b/lib/SOAP/WSDL/Deserializer/XSD.pm @@ -5,7 +5,7 @@ use Class::Std::Fast::Storable; use SOAP::WSDL::SOAP::Typelib::Fault11; use SOAP::WSDL::Expat::MessageParser; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %class_resolver_of :ATTR(:name :default<()>); my %strict_of :ATTR(:get :init_arg :default<1>); @@ -126,9 +126,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: XSD.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: XSD.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/XSD.pm $ =cut diff --git a/lib/SOAP/WSDL/Expat/Base.pm b/lib/SOAP/WSDL/Expat/Base.pm index 2e7df0b..d227524 100644 --- a/lib/SOAP/WSDL/Expat/Base.pm +++ b/lib/SOAP/WSDL/Expat/Base.pm @@ -6,7 +6,7 @@ use XML::Parser::Expat; # TODO: convert to Class::Std::Fast based class - hash based classes suck. -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); sub new { my ($class, $arg_ref) = @_; diff --git a/lib/SOAP/WSDL/Expat/Message2Hash.pm b/lib/SOAP/WSDL/Expat/Message2Hash.pm index 9a60f74..387cf60 100644 --- a/lib/SOAP/WSDL/Expat/Message2Hash.pm +++ b/lib/SOAP/WSDL/Expat/Message2Hash.pm @@ -4,7 +4,7 @@ use strict; use warnings; use base qw(SOAP::WSDL::Expat::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); sub _initialize { my ($self, $parser) = @_; diff --git a/lib/SOAP/WSDL/Expat/MessageParser.pm b/lib/SOAP/WSDL/Expat/MessageParser.pm index 36755ad..a1b282f 100644 --- a/lib/SOAP/WSDL/Expat/MessageParser.pm +++ b/lib/SOAP/WSDL/Expat/MessageParser.pm @@ -9,7 +9,7 @@ use base qw(SOAP::WSDL::Expat::Base); BEGIN { require Class::Std::Fast }; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); # GLOBALS my $OBJECT_CACHE_REF = Class::Std::Fast::OBJECT_CACHE_REF(); @@ -330,10 +330,10 @@ the same terms as perl itself =head1 Repository information - $Id: MessageParser.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: MessageParser.pm 851 2009-05-15 22:45:18Z kutterma $ - $LastChangedDate: 2009-02-23 22:12:24 +0100 (Mo, 23 Feb 2009) $ - $LastChangedRevision: 805 $ + $LastChangedDate: 2009-05-16 00:45:18 +0200 (Sa, 16. Mai 2009) $ + $LastChangedRevision: 851 $ $LastChangedBy: kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $ diff --git a/lib/SOAP/WSDL/Expat/MessageStreamParser.pm b/lib/SOAP/WSDL/Expat/MessageStreamParser.pm index 3ff076e..6477547 100644 --- a/lib/SOAP/WSDL/Expat/MessageStreamParser.pm +++ b/lib/SOAP/WSDL/Expat/MessageStreamParser.pm @@ -6,7 +6,7 @@ use XML::Parser::Expat; use SOAP::WSDL::Expat::MessageParser; use base qw(SOAP::WSDL::Expat::MessageParser); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); sub parse_start { my $self = shift; @@ -69,9 +69,9 @@ the same terms as perl itself =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: MessageStreamParser.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: MessageStreamParser.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageStreamParser.pm $ =cut diff --git a/lib/SOAP/WSDL/Expat/WSDLParser.pm b/lib/SOAP/WSDL/Expat/WSDLParser.pm index dbf2e6f..6457863 100644 --- a/lib/SOAP/WSDL/Expat/WSDLParser.pm +++ b/lib/SOAP/WSDL/Expat/WSDLParser.pm @@ -5,7 +5,7 @@ use Carp; use SOAP::WSDL::TypeLookup; use base qw(SOAP::WSDL::Expat::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); # # Import child elements of a WSDL / XML Schema tree into the current tree @@ -367,10 +367,10 @@ the same terms as perl itself =head1 Repository information - $Id: WSDLParser.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: WSDLParser.pm 851 2009-05-15 22:45:18Z kutterma $ - $LastChangedDate: 2009-02-23 22:12:24 +0100 (Mo, 23 Feb 2009) $ - $LastChangedRevision: 805 $ + $LastChangedDate: 2009-05-16 00:45:18 +0200 (Sa, 16. Mai 2009) $ + $LastChangedRevision: 851 $ $LastChangedBy: kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/WSDLParser.pm $ diff --git a/lib/SOAP/WSDL/Factory/Deserializer.pm b/lib/SOAP/WSDL/Factory/Deserializer.pm index dfff8b5..e6efebd 100644 --- a/lib/SOAP/WSDL/Factory/Deserializer.pm +++ b/lib/SOAP/WSDL/Factory/Deserializer.pm @@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Deserializer; use strict; use warnings; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %DESERIALIZER = ( '1.1' => 'SOAP::WSDL::Deserializer::XSD', diff --git a/lib/SOAP/WSDL/Factory/Generator.pm b/lib/SOAP/WSDL/Factory/Generator.pm index 3dd642e..c9f55a1 100644 --- a/lib/SOAP/WSDL/Factory/Generator.pm +++ b/lib/SOAP/WSDL/Factory/Generator.pm @@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Generator; use strict; use warnings; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %GENERATOR = ( 'XSD' => 'SOAP::WSDL::Generator::Template::XSD', diff --git a/lib/SOAP/WSDL/Factory/Serializer.pm b/lib/SOAP/WSDL/Factory/Serializer.pm index dc52177..1820464 100644 --- a/lib/SOAP/WSDL/Factory/Serializer.pm +++ b/lib/SOAP/WSDL/Factory/Serializer.pm @@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Serializer; use strict; use warnings; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %SERIALIZER = ( '1.1' => 'SOAP::WSDL::Serializer::XSD', @@ -138,9 +138,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Serializer.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Serializer.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $ =cut diff --git a/lib/SOAP/WSDL/Factory/Transport.pm b/lib/SOAP/WSDL/Factory/Transport.pm index bd5d275..28e35c2 100644 --- a/lib/SOAP/WSDL/Factory/Transport.pm +++ b/lib/SOAP/WSDL/Factory/Transport.pm @@ -1,7 +1,7 @@ package SOAP::WSDL::Factory::Transport; use strict; use warnings; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %registered_transport_of = (); @@ -243,9 +243,9 @@ Martin Kutter Emartin.kutter fen-net.deE =head1 REPOSITORY INFORMATION - $Rev: 805 $ + $Rev: 851 $ $LastChangedBy: kutterma $ - $Id: Transport.pm 805 2009-02-23 21:12:24Z kutterma $ + $Id: Transport.pm 851 2009-05-15 22:45:18Z kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Transport.pm $ =cut diff --git a/lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm b/lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm index 3b40730..9658ddc 100644 --- a/lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm +++ b/lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm @@ -2,7 +2,7 @@ package SOAP::WSDL::Generator::Iterator::WSDL11; use strict; use warnings; use Class::Std::Fast; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %definitions_of :ATTR(:name :default<[]>); my %nodes_of :ATTR(:name :default<[]>); diff --git a/lib/SOAP/WSDL/Generator/PrefixResolver.pm b/lib/SOAP/WSDL/Generator/PrefixResolver.pm index 9b64429..bbbd1da 100644 --- a/lib/SOAP/WSDL/Generator/PrefixResolver.pm +++ b/lib/SOAP/WSDL/Generator/PrefixResolver.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Class::Std::Fast::Storable; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %namespace_prefix_map_of :ATTR(:name :default<{}>); my %namespace_map_of :ATTR(:name :default<{}>); diff --git a/lib/SOAP/WSDL/Generator/Template.pm b/lib/SOAP/WSDL/Generator/Template.pm index 27207f2..170696d 100644 --- a/lib/SOAP/WSDL/Generator/Template.pm +++ b/lib/SOAP/WSDL/Generator/Template.pm @@ -1,11 +1,11 @@ package SOAP::WSDL::Generator::Template; use strict; use warnings; -use Template; +use Template 2.18; use Class::Std::Fast::Storable; use Carp; use SOAP::WSDL::Generator::PrefixResolver; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %tt_of :ATTR(:get); my %definitions_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm b/lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm index 2e4094b..c00cb53 100644 --- a/lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm +++ b/lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm @@ -4,7 +4,7 @@ use warnings; use Carp qw(confess); use Class::Std::Fast::Storable constructor => 'none'; use Scalar::Util qw(blessed); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %namespace_prefix_map_of :ATTR(:name :default<{}>); my %namespace_map_of :ATTR(:name :default<{}>); @@ -129,8 +129,10 @@ sub create_subpackage_name { my $type = ref $arg_ref eq 'HASH' ? $arg_ref->{ value } : $arg_ref; my @name_from = $type->get_name() || (); ; - my $parent = $type; - my $top_node = $parent; + + # search for top node in tree (the one directly below the Schema) + my $parent = $type; + my $top_node = $parent; if (! $parent->get_parent()->isa('SOAP::WSDL::XSD::Schema') ) { NAMES: while ($parent = $parent->get_parent()) { $top_node = $parent; @@ -141,9 +143,13 @@ sub create_subpackage_name { } } # create name for top node - die "FOO" if not defined $top_node; + die "No top node found" if not defined $top_node; my $top_node_name = $self->create_xsd_name($top_node); my $package_name = join('::_', $top_node_name , (@name_from) ? join('::', @name_from) : () ); + + # replace dots by :: in name - subpackage names may include dots, too + $package_name =~s{\.}{::}xg; + return $package_name; } diff --git a/lib/SOAP/WSDL/Generator/Template/XSD.pm b/lib/SOAP/WSDL/Generator/Template/XSD.pm index 302b24a..bdbf762 100644 --- a/lib/SOAP/WSDL/Generator/Template/XSD.pm +++ b/lib/SOAP/WSDL/Generator/Template/XSD.pm @@ -5,7 +5,7 @@ use Class::Std::Fast::Storable; use File::Basename; use File::Spec; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); use SOAP::WSDL::Generator::Visitor::Typemap; use SOAP::WSDL::Generator::Template::Plugin::XSD; diff --git a/lib/SOAP/WSDL/Generator/Template/XSD/complexType.tt b/lib/SOAP/WSDL/Generator/Template/XSD/complexType.tt index d2cabe1..f628edd 100644 --- a/lib/SOAP/WSDL/Generator/Template/XSD/complexType.tt +++ b/lib/SOAP/WSDL/Generator/Template/XSD/complexType.tt @@ -1,4 +1,5 @@ -[% USE XSD -%] +[% USE XSD; +USE Dumper -%] package [% XSD.create_xsd_name(complexType) %]; use strict; use warnings; @@ -12,6 +13,8 @@ __PACKAGE__->_set_element_form_qualified([%- IF complexType.schema.get_elementFormDefault == 'qualified' -%]1[% ELSE %]0[% END %]); +sub get_xmlns { '[% complexType.get_targetNamespace %]' }; + [% INCLUDE complexType/contentModel.tt %] 1; diff --git a/lib/SOAP/WSDL/Generator/Visitor.pm b/lib/SOAP/WSDL/Generator/Visitor.pm index e2e9b47..1a334d8 100644 --- a/lib/SOAP/WSDL/Generator/Visitor.pm +++ b/lib/SOAP/WSDL/Generator/Visitor.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Class::Std::Fast::Storable; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %definitions_of :ATTR(:name :default<()>); my %type_prefix_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Generator/Visitor/Typemap.pm b/lib/SOAP/WSDL/Generator/Visitor/Typemap.pm index 495145e..1b64c36 100644 --- a/lib/SOAP/WSDL/Generator/Visitor/Typemap.pm +++ b/lib/SOAP/WSDL/Generator/Visitor/Typemap.pm @@ -5,7 +5,7 @@ use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Generator::Visitor); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %path_of :ATTR(:name :default<[]>); my %typemap_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Manual/Cookbook.pod b/lib/SOAP/WSDL/Manual/Cookbook.pod index 86fbdb9..e3b3ead 100644 --- a/lib/SOAP/WSDL/Manual/Cookbook.pod +++ b/lib/SOAP/WSDL/Manual/Cookbook.pod @@ -32,15 +32,28 @@ this backend: =head3 Accessing HTTP(S) webservices protected by NTLM authentication +If you want to connect to a windows server using some Windows Domain Login, please +consider using Kerberos instead of the (older) NTLM mechanism - see below. + +Kerberos and NTLM are (currently) mutually exclusive - when LWP::Authen::Negotiate +is installed, it will always be queried (and will always raise an error), even +if you don't want to use it. See http://rt.cpan.org/Public/Bug/Display.html?id=32826 +for details. + You need the L distribution installed to access webservices protected by NTLM authentication. More specifically, you need the Authen::NTLM module from this distribution. Note that this is different from the Authen::NTML distribution by Yee Man Chan also available from CPAN. -Your user credentials usually need to include the windows domain like this: +Your user credentials usually need to include the windows domain or the +windows hostname like this: testdomain\testuser +or + + \\testhost\testuser + Besides passing user credentials as when accessing a web service protected by basic or digest authentication, you also need to enforce connection keep_alive on the transport backens. @@ -56,6 +69,57 @@ You may, of course, decide to just hack the generated class. Be advised that subclassing might be a more appropriate solution - re-generating overwrites changes in interface classes. +=head3 Accessing HTTP(S) webservices protected by NTLMv2 + +There are different variants of NTLM, and by default Authen::NTLM uses the v1 variant. + +NTLM is a connection-based handshake authentication protocol, which requires +three or more requests on the same connection: + + Request POST + Response 401 Unauthorized + WWW-Authenticate: NTLM + + Request Authorization: NTLM + Response 401 Unauthorized + WWW-Authenticate: NTLM + + Request Authorization: NTLM + Response 200 Ok + +If you try to access a NTLMv2 protected web service and switch on LWP::Debug by +saying + + use LWP::Debug qw(+); + +you should see at least two lines containing something like + + Authorization NTLM TlRMTVNTUAABAAAAB7IAAAAAAAAAAAAAAwADACAAAABmb28= + ... + Authorization NTLM TlRMTVNTUAABAAAAB7IAAAAAAAAAAAAAAw ... much longer ... ADACAAAABmb28= + +If you're talking to a Server using NTLMv2 exclusively, you will only the first line +in the debug output, and then an error. + +To explicitely enable NTLMv2, do the following in your client: + + use Authen::NTLM; + ntlmv2(1); + +This globally enables the use of NTLMv2. Note that this is a global setting: All +clients running in the same perl interpreter will be affected. This can +cause unexpected issues when running under mod_perl. + +=head3 Accessing webservices protected by HTTP Kerberos Authentication + +Use the L plugin from CPAN. You +need to set up GSSAPI to perform the Kerberos authentication, though. How to do +this is implementation specific (MIT or Heimdahl). See your Kerberos/GSSAPI +documentation for details. + +(Newer) Windows Web Services usually allow to use both the Negotiate (Kerberos) +and NTLM authentication scheme. + =head3 Accessing HTTPS webservices protected by certificate authentication You need Crypt::SSLeay installed to access HTTPS webservices. diff --git a/lib/SOAP/WSDL/Message.pm b/lib/SOAP/WSDL/Message.pm index ad31661..0445cc2 100644 --- a/lib/SOAP/WSDL/Message.pm +++ b/lib/SOAP/WSDL/Message.pm @@ -4,7 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %part_of :ATTR(:name :default<[]>); diff --git a/lib/SOAP/WSDL/OpMessage.pm b/lib/SOAP/WSDL/OpMessage.pm index 1738985..3ba91d0 100644 --- a/lib/SOAP/WSDL/OpMessage.pm +++ b/lib/SOAP/WSDL/OpMessage.pm @@ -4,7 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %body_of :ATTR(:name :default<[]>); my %header_of :ATTR(:name
:default<[]>); diff --git a/lib/SOAP/WSDL/Operation.pm b/lib/SOAP/WSDL/Operation.pm index 8d08e82..7dbff9e 100644 --- a/lib/SOAP/WSDL/Operation.pm +++ b/lib/SOAP/WSDL/Operation.pm @@ -4,7 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %operation_of :ATTR(:name :default<()>); my %input_of :ATTR(:name :default<[]>); diff --git a/lib/SOAP/WSDL/Part.pm b/lib/SOAP/WSDL/Part.pm index e962de6..bb9b08b 100644 --- a/lib/SOAP/WSDL/Part.pm +++ b/lib/SOAP/WSDL/Part.pm @@ -6,7 +6,7 @@ use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %element_of :ATTR(:name :default<()>); my %type_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/Port.pm b/lib/SOAP/WSDL/Port.pm index d932ad5..7b5c746 100644 --- a/lib/SOAP/WSDL/Port.pm +++ b/lib/SOAP/WSDL/Port.pm @@ -4,7 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %binding_of :ATTR(:name :default<()>); my %address_of :ATTR(:name
:default<()>); diff --git a/lib/SOAP/WSDL/PortType.pm b/lib/SOAP/WSDL/PortType.pm index da654b1..d0e853b 100644 --- a/lib/SOAP/WSDL/PortType.pm +++ b/lib/SOAP/WSDL/PortType.pm @@ -5,7 +5,7 @@ use Class::Std::Fast::Storable; use List::Util; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %operation_of :ATTR(:name :default<()>); diff --git a/lib/SOAP/WSDL/SOAP/Address.pm b/lib/SOAP/WSDL/SOAP/Address.pm index a306be0..0e5b95a 100644 --- a/lib/SOAP/WSDL/SOAP/Address.pm +++ b/lib/SOAP/WSDL/SOAP/Address.pm @@ -4,7 +4,7 @@ use warnings; use base qw(SOAP::WSDL::Base); use Class::Std::Fast::Storable; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %location :ATTR(:name :default<()>); 1; \ No newline at end of file diff --git a/lib/SOAP/WSDL/SOAP/Body.pm b/lib/SOAP/WSDL/SOAP/Body.pm index 83992af..2a1b6f7 100644 --- a/lib/SOAP/WSDL/SOAP/Body.pm +++ b/lib/SOAP/WSDL/SOAP/Body.pm @@ -4,7 +4,7 @@ use warnings; use base qw(SOAP::WSDL::Base); use Class::Std::Fast::Storable; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %use_of :ATTR(:name :default); my %namespace_of :ATTR(:name :default); diff --git a/lib/SOAP/WSDL/SOAP/Header.pm b/lib/SOAP/WSDL/SOAP/Header.pm index 69ea03a..9fcd478 100644 --- a/lib/SOAP/WSDL/SOAP/Header.pm +++ b/lib/SOAP/WSDL/SOAP/Header.pm @@ -4,7 +4,7 @@ use warnings; use base qw(SOAP::WSDL::Base); use Class::Std::Fast::Storable; -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %use_of :ATTR(:name :default); my %namespace_of :ATTR(:name :default); diff --git a/lib/SOAP/WSDL/SOAP/HeaderFault.pm b/lib/SOAP/WSDL/SOAP/HeaderFault.pm index 24f96f6..8d2a0de 100644 --- a/lib/SOAP/WSDL/SOAP/HeaderFault.pm +++ b/lib/SOAP/WSDL/SOAP/HeaderFault.pm @@ -3,6 +3,6 @@ use strict; use warnings; use base qw(SOAP::WSDL::Header); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); 1; \ No newline at end of file diff --git a/lib/SOAP/WSDL/SOAP/Operation.pm b/lib/SOAP/WSDL/SOAP/Operation.pm index 3b37e6c..fd05278 100644 --- a/lib/SOAP/WSDL/SOAP/Operation.pm +++ b/lib/SOAP/WSDL/SOAP/Operation.pm @@ -4,7 +4,7 @@ use warnings; use Class::Std::Fast::Storable; use base qw(SOAP::WSDL::Base); -use version; our $VERSION = qv('2.00.09'); +use version; our $VERSION = qv('2.00.10'); my %style_of :ATTR(:name