Changeset 11723
- Timestamp:
- 05/18/11 21:18:08 (2 years ago)
- Location:
- trunk/SoapPlugin
- Files:
-
- 31 added
- 7 edited
-
. (modified) (1 prop)
-
data/System/SoapPlugin.txt (modified) (2 diffs)
-
lib/Foswiki/Plugins/SoapPlugin.pm (modified) (2 diffs)
-
lib/Foswiki/Plugins/SoapPlugin/Client.pm (modified) (9 diffs)
-
lib/Foswiki/Plugins/SoapPlugin/Core.pm (modified) (11 diffs)
-
lib/Foswiki/Plugins/SoapPlugin/DEPENDENCIES (modified) (1 diff)
-
lib/Foswiki/Plugins/SoapPlugin/MANIFEST (modified) (1 diff)
-
lib/SOAP (added)
-
lib/SOAP/Constants.pm (added)
-
lib/SOAP/Lite (added)
-
lib/SOAP/Lite.pm (added)
-
lib/SOAP/Lite/Deserializer (added)
-
lib/SOAP/Lite/Deserializer/XMLSchema1999.pm (added)
-
lib/SOAP/Lite/Deserializer/XMLSchema2001.pm (added)
-
lib/SOAP/Lite/Deserializer/XMLSchemaSOAP1_1.pm (added)
-
lib/SOAP/Lite/Deserializer/XMLSchemaSOAP1_2.pm (added)
-
lib/SOAP/Lite/Packager.pm (added)
-
lib/SOAP/Lite/Utils.pm (added)
-
lib/SOAP/Packager.pm (added)
-
lib/SOAP/Test.pm (added)
-
lib/SOAP/Transport (added)
-
lib/SOAP/Transport/HTTP.pm (added)
-
lib/SOAP/Transport/IO.pm (added)
-
lib/SOAP/Transport/LOCAL.pm (added)
-
lib/SOAP/Transport/LOOPBACK.pm (added)
-
lib/SOAP/Transport/MAILTO.pm (added)
-
lib/SOAP/Transport/POP3.pm (added)
-
lib/SOAP/Transport/TCP.pm (added)
-
lib/UDDI (added)
-
lib/UDDI/Lite.pm (added)
-
lib/XMLRPC (added)
-
lib/XMLRPC/Lite.pm (added)
-
lib/XMLRPC/Test.pm (added)
-
lib/XMLRPC/Transport (added)
-
lib/XMLRPC/Transport/HTTP.pm (added)
-
lib/XMLRPC/Transport/POP3.pm (added)
-
lib/XMLRPC/Transport/TCP.pm (added)
-
soap-lite.patch (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/SoapPlugin
-
Property
svn:ignore
set to
SoapPlugin.txt
SoapPlugin.zip
SoapPlugin.tgz
SoapPlugin.md5
SoapPlugin_installer.pl
SoapPlugin.sha1
SoapPlugin_installer
-
Property
svn:ignore
set to
-
trunk/SoapPlugin/data/System/SoapPlugin.txt
r8281 r11723 37 37 | depth="int" | the depth to which an XML response object should be traversed while rendering it using =format=, =header=, =footer= and =separator= | 38 38 | warn="on/off" | if switched off all error warnings will be suppressed (defaults to on) | 39 39 | cache="on/off" | toggles caching on or of (default is off) | 40 | expire="seconds/units" | indicates the time the soap response is reused from cache if available instead of fetching it from the distant endpoint; =expire= can either be specified numerically in seconds or using a date expression like "10 minutes". Valid units are \ 41 =s=, =second=, =seconds=, =sec=, =m=, =minute=, =minutes=, =min=, =h=, =hour=, =hours=, =d=, =day=, =days=, =w=, =week=, =weeks=, =M=, =month=, =months=, =y=, =year=, and =years=, as well as =now= and =never= | 42 43 The cache can be invalidated manually by using a =refresh=soap= (or =refresh=on=) url parameter. 40 44 41 45 Any additional parameter like for example =EMPLOYEEID= in … … 177 181 --> 178 182 | Author(s): | Foswiki:Main/MichaelDaum | 179 | Copyright: | © 201 0Michael Daum http://michaeldaumconsulting.com |183 | Copyright: | © 2011 Michael Daum http://michaeldaumconsulting.com | 180 184 | License: | [[http://www.gnu.org/licenses/gpl.html][GPL (Gnu General Public License)]] | 181 185 | Release: | %$RELEASE% | 182 186 | Version: | %$VERSION% | 183 187 | Change History: | <!-- versions below in reverse order --> | 188 | 18 May 2011: | implemented caching; \ 189 including a local version of SOAP::Lite with patches applied; \ 190 removed XML::Parser::Lite from the SOAP::Lite package as it is seriously broken; \ 191 new dependency on XML::Parser (the real thing) now | 184 192 | 14 Jun 2010: | added =warn= parameter to suppress error messages; \ 185 193 fixed perl rookie error for default values retrieved from a SOM object | -
trunk/SoapPlugin/lib/Foswiki/Plugins/SoapPlugin.pm
r8281 r11723 1 1 # Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/ 2 2 # 3 # SoapPlugin is Copyright (C) 2010 Michael Daum http://michaeldaumconsulting.com3 # SoapPlugin is Copyright (C) 2010-2011 Michael Daum http://michaeldaumconsulting.com 4 4 # 5 5 # This program is free software; you can redistribute it and/or … … 17 17 18 18 our $VERSION = '$Rev$'; 19 our $RELEASE = ' 1.0';19 our $RELEASE = '2.00'; 20 20 our $SHORTDESCRIPTION = 'SOAP for Foswiki'; 21 21 our $NO_PREFS_IN_TOPIC = 1; 22 our $baseWeb; 23 our $baseTopic; 24 our $doneInit; 22 23 our $core; 25 24 26 25 ############################################################################### 27 26 sub initPlugin { 28 ($baseTopic, $baseWeb) = @_;29 27 30 Foswiki::Func::registerTagHandler('SOAP', \&SOAP); 31 Foswiki::Func::registerTagHandler('SOAPFORMAT', \&SOAPFORMAT); 28 Foswiki::Func::registerTagHandler('SOAP', sub { 29 my $session = shift; 30 return getCore($session)->handleSOAP(@_); 31 }); 32 32 33 $doneInit = 0; 33 Foswiki::Func::registerTagHandler('SOAPFORMAT', sub { 34 my $session = shift; 35 return getCore($session)->handleSOAPFORMAT(@_); 36 }); 37 38 $core = undef; 34 39 return 1; 35 40 } 36 41 37 42 ############################################################################### 38 sub finishPlugin { 39 return unless $doneInit; 43 sub getCore { 40 44 41 require Foswiki::Plugins::SoapPlugin::Core; 42 Foswiki::Plugins::SoapPlugin::Core::finish(); 43 } 45 unless ($core) { 46 require Foswiki::Plugins::SoapPlugin::Core; 47 $core = new Foswiki::Plugins::SoapPlugin::Core(@_); 48 } 44 49 45 ############################################################################### 46 sub init { 47 return if $doneInit; 48 49 $doneInit = 1; 50 51 require Foswiki::Plugins::SoapPlugin::Core; 52 Foswiki::Plugins::SoapPlugin::Core::init($baseWeb, $baseTopic); 53 } 54 55 ############################################################################### 56 sub SOAP { 57 init(); 58 return Foswiki::Plugins::SoapPlugin::Core::handleSOAP(@_); 59 } 60 61 ############################################################################### 62 sub SOAPFORMAT { 63 init(); 64 return Foswiki::Plugins::SoapPlugin::Core::handleSOAPFORMAT(@_); 50 return $core; 65 51 } 66 52 -
trunk/SoapPlugin/lib/Foswiki/Plugins/SoapPlugin/Client.pm
r8281 r11723 1 1 # Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/ 2 2 # 3 # SoapPlugin is Copyright (C) 2010 Michael Daum http://michaeldaumconsulting.com3 # SoapPlugin is Copyright (C) 2010-2011 Michael Daum http://michaeldaumconsulting.com 4 4 # 5 5 # This program is free software; you can redistribute it and/or … … 21 21 use Error qw( :try ); 22 22 use SOAP::Lite;# +trace => ['debug']; 23 use Cache::FileCache (); 24 23 25 use constant DEBUG => 0; # toggle me 26 use constant DEFAULT_EXPIRE => 86400; # 24h 24 27 25 28 use vars qw($currentClient); … … 54 57 55 58 bless($this, $class); 59 60 my $cacheDir = Foswiki::Func::getWorkArea("SoapPlugin")."/".$this->{id}; 61 mkdir $cacheDir unless -d $cacheDir; 62 63 writeDebug("cacheDir=$cacheDir"); 64 $this->{cache} = Cache::FileCache->new({ 65 cache_root => $cacheDir, 66 default_expires_in => DEFAULT_EXPIRE, 67 } 68 ); 56 69 57 70 return $this; … … 81 94 $this->{soap}->on_fault(\&onFaultHandler); 82 95 96 83 97 foreach my $ns ($this->{namespaces}) { 84 98 next unless $ns; … … 105 119 my ($soap, $response) = @_; 106 120 107 writeDebug("called onFaultHandler"); 121 writeDebug("called onFaultHandler()"); 122 123 return if $soap->{_insideOnFaultHandler}; 124 $soap->{_insideOnFaultHandler} = 1; 125 126 unless (defined $response) { 127 writeDebug("got a transport error"); 128 #writeDebug($soap->transport->http_response->content); 129 die($soap->transport->status); 130 } 108 131 109 132 if (ref $response) { 110 133 return $response; 111 134 } else { 112 writeDebug("got a transport error"); 113 die($soap->transport->status); 114 } 135 writeDebug("Error: $response"); 136 die $response; 137 } 138 115 139 return new SOAP::SOM; 116 140 } … … 145 169 $method ||= $this->{defaultMethod}; 146 170 writeDebug("called call($method)"); 171 172 my $som; 173 my $error; 174 175 my $expire = $params->{expire} || $params->{cache}; 176 my $useCache = Foswiki::Func::isTrue($params->{cache}, 0); 177 178 my $cacheKey; 179 180 if ($useCache) { 181 $cacheKey = $this->_cacheKey($method, $params); 182 183 my $query = Foswiki::Func::getCgiQuery(); 184 my $refresh = $query->param("refresh"); 185 if (defined($refresh) && ($refresh =~ /^(on|soap)$/)) { 186 writeDebug("refreshing soap cache"); 187 $this->_cacheRemove($cacheKey); 188 } else { 189 $som = $this->_cacheGet($cacheKey); 190 } 191 192 if ($som) { 193 writeDebug("found in cache"); 194 return ($som, $error); 195 } 196 } else { 197 writeDebug("not using caching"); 198 } 199 147 200 $currentClient = $this; 148 201 … … 179 232 ); 180 233 181 my $som;182 my $error;183 184 234 $method = SOAP::Data->name($method); 185 235 … … 189 239 190 240 try { 241 writeDebug("calling soap"); 191 242 $som = $this->soap->call($method, @params); 192 243 writeDebug("success"); 244 $this->_cacheSet($cacheKey, $expire, $som) if $useCache; 245 193 246 } catch Error::Simple with { 194 247 writeDebug("error"); … … 206 259 } 207 260 261 sub clearCache { 262 my $this = shift; 263 my $cache = $this->{cache}; 264 return unless defined $cache; 265 266 writeCmisDebug("clearing cache"); 267 return $cache->clear(@_); 268 } 269 sub purgeCache { 270 my $this = shift; 271 my $cache = $this->{cache}; 272 return unless defined $cache; 273 274 return $cache->purge(@_); 275 } 276 277 # internal cache layer 278 sub _cacheGet { 279 my $this = shift; 280 my $key = shift; 281 282 my $cache = $this->{cache}; 283 return unless defined $cache; 284 285 my $val = $cache->get($key, @_); 286 287 return unless $val; 288 289 $val = _untaint($val); 290 291 my $som = SOAP::Deserializer->deserialize($val); 292 $som->context($this->soap); 293 294 $som->{_foswiki_content} = $val; # trick in the orig content 295 296 return $som; 297 } 298 299 sub _cacheSet { 300 my $this = shift; 301 my $key = shift; 302 my $expire = shift; 303 my $som = shift; 304 305 $expire = DEFAULT_EXPIRE unless defined $expire; 306 307 my $cache = $this->{cache}; 308 return unless defined $cache; 309 310 my $val = _untaint($som->context->transport->http_response->content); 311 return $cache->set($key, $val, $expire); 312 } 313 314 sub _cacheRemove { 315 my $this = shift; 316 my $key = shift; 317 318 my $cache = $this->{cache}; 319 return unless defined $cache; 320 321 return $cache->remove($key, @_); 322 } 323 324 sub _cacheKey { 325 my ($this, $method, $params) = @_; 326 return _untaint($method.'-'.$params->stringify); 327 } 328 329 sub _untaint { 330 my $content = shift; 331 if (defined $content && $content =~ /^(.*)$/s) { 332 $content = $1; 333 } 334 return $content; 335 } 336 337 208 338 1; -
trunk/SoapPlugin/lib/Foswiki/Plugins/SoapPlugin/Core.pm
r8281 r11723 1 1 # Plugin for Foswiki - The Free and Open Source Wiki, http://foswiki.org/ 2 2 # 3 # SoapPlugin is Copyright (C) 2010 Michael Daum http://michaeldaumconsulting.com3 # SoapPlugin is Copyright (C) 2010-2011 Michael Daum http://michaeldaumconsulting.com 4 4 # 5 5 # This program is free software; you can redistribute it and/or … … 19 19 use Foswiki::Plugins (); 20 20 use Foswiki::Plugins::SoapPlugin::Client(); 21 use Unicode::MapUTF8 ();22 23 our $baseWeb;24 our $baseTopic;25 our %clients;26 our %knownSoms;27 21 28 22 use constant DEBUG => 0; # toggle me 29 23 #use Data::Dumper (); 30 24 31 ############################################################################### 25 ############################################################################## 26 sub new { 27 my ($class, $session) = @_; 28 29 my $this = bless({ 30 session => $session, 31 }, $class); 32 33 foreach my $desc (@{$Foswiki::cfg{SoapPlugin}{Clients}}) { 34 $this->createClient($desc); 35 } 36 37 return $this; 38 } 39 40 ############################################################################### 41 sub createClient { 42 my ($this, $desc) = @_; 43 44 my $client = new Foswiki::Plugins::SoapPlugin::Client(%$desc); 45 writeDebug("created client $client->{id}"); 46 47 return $this->client($client->{id}, $client); 48 } 49 50 ############################################################################### 51 sub client { 52 my ($this, $key, $value) = @_; 53 54 $this->{clients}{$key} = $value if defined $value; 55 return $this->{clients}{$key}; 56 } 57 58 ############################################################################### 59 sub handleSOAP { 60 my ($this, $params, $theTopic, $theWeb) = @_; 61 62 writeDebug("called handleSOAP()"); 63 64 my $theClient = $params->{_DEFAULT} || $params->{client} || ''; 65 normalizeParams($params); 66 67 my $client = $this->client($theClient); 68 return inlineError("unknown client '$theClient'") unless $client; 69 70 my $method = $params->{method} || $client->{defaultMethod}; 71 return inlineError("no method") unless $method; 72 73 my ($som, $error) = $client->call($method, $params); 74 $error ||= ''; 75 76 return inlineError("Error during SOAP call $error") unless $som; 77 78 my $theId = $params->{id}; 79 $this->{knownSoms}{$theId} = $som if $theId; 80 81 return '' if defined $theId && 82 !$params->{format} && 83 !$params->{verbatim}; 84 85 return formatResult($som, $params); 86 } 87 88 ############################################################################### 89 sub handleSOAPFORMAT { 90 my ($this, $params, $theTopic, $theWeb) = @_; 91 92 normalizeParams($params); 93 94 writeDebug("called handleSOAPFORMAT()"); 95 my $theId = $params->{_DEFAULT} || $params->{id}; 96 97 unless ($theId) { 98 return '' if $params->{warn} eq 'off'; 99 return inlineError("Error: no id"); 100 } 101 102 my $som = $this->{knownSoms}{$theId}; 103 104 unless ($som) { 105 return '' if $params->{warn} eq 'off'; 106 return inlineError("Error: unknown som id '$theId'"); 107 } 108 109 return formatResult($som, $params); 110 } 111 112 113 ############################################################################### 114 # static 32 115 sub writeDebug { 33 116 print STDERR "SoapPlugin::Core - $_[0]\n" if DEBUG; … … 35 118 36 119 ############################################################################## 37 sub init { 38 ($baseWeb, $baseTopic) = @_; 39 40 writeDebug("called init"); 41 42 foreach my $desc (@{$Foswiki::cfg{SoapPlugin}{Clients}}) { 43 my $client = new Foswiki::Plugins::SoapPlugin::Client(%$desc); 44 $clients{$client->{id}} = $client; 45 writeDebug("created client $client->{id}"); 46 } 47 } 48 49 ############################################################################## 50 sub finish { 51 undef %clients; 52 undef %knownSoms; 53 } 54 55 ############################################################################## 120 # static 56 121 sub inlineError { 57 122 my $msg = shift; … … 61 126 62 127 ############################################################################### 128 # static 63 129 sub prettyPrint { 64 130 my $xml = shift; … … 80 146 81 147 if ($exit) { 82 return inlineError("Error linting xml: " +$output);148 return inlineError("Error linting xml: ".$output); 83 149 } 84 150 … … 89 155 90 156 ############################################################################### 91 sub handleSOAP { 92 my ($session, $params, $theTopic, $theWeb) = @_; 93 94 writeDebug("called handleSOAP()"); 95 96 my $theClient = $params->{_DEFAULT} || $params->{client} || ''; 97 normalizeParams($params); 98 99 my $client = $clients{$theClient}; 100 return inlineError("unknown client '$theClient'") unless $client; 101 102 my $method = $params->{method} || $client->{defaultMethod}; 103 return inlineError("no method") unless $method; 104 105 my ($som, $error) = $client->call($method, $params); 106 $error ||= ''; 107 108 return inlineError("Error during SOAP call $error") unless $som; 109 110 my $theId = $params->{id}; 111 $knownSoms{$theId} = $som if $theId; 112 113 return '' if defined $theId && 114 !$params->{format} && 115 !$params->{verbatim}; 116 117 return formatResult($som, $params); 118 } 119 120 ############################################################################### 157 # static 121 158 sub normalizeParams { 122 159 my $params = shift; … … 137 174 138 175 ############################################################################### 176 # static 139 177 sub formatResult { 140 178 my ($som, $params) = @_; … … 142 180 writeDebug("called formatResult"); 143 181 if ($params->{raw} || $params->{verbatim}) { 144 my $content = $som-> context->transport->http_response->content;182 my $content = $som->{_foswiki_content} || $som->context->transport->http_response->content; 145 183 return $content if $params->{raw}; 146 184 $content = prettyPrint($content); … … 161 199 162 200 ############################################################################### 163 sub handleSOAPFORMAT { 164 my ($session, $params, $theTopic, $theWeb) = @_; 165 166 normalizeParams($params); 167 168 writeDebug("called handleSOAPFORMAT()"); 169 my $theId = $params->{_DEFAULT} || $params->{id}; 170 171 unless ($theId) { 172 return '' if $params->{warn} eq 'off'; 173 return inlineError("Error: no id"); 174 } 175 176 my $som = $knownSoms{$theId}; 177 178 unless ($som) { 179 return '' if $params->{warn} eq 'off'; 180 return inlineError("Error: unknown som id '$theId'"); 181 } 182 183 return formatResult($som, $params); 184 } 185 186 ############################################################################### 201 # static 187 202 sub stringify { 188 203 my ($som, $params, $data, $depth) = @_; … … 245 260 $index++; 246 261 } 262 } elsif (ref($value) eq "REF") { 263 push @values, ref($$value); 247 264 } else { 248 265 push @values, ref($value); … … 261 278 262 279 ############################################################################### 280 # static 281 sub fromUtf8 { 282 my $string = shift; 283 284 my $charset = $Foswiki::cfg{Site}{CharSet}; 285 return $string if $charset =~ /^utf-?8$/i; 286 287 if ($] < 5.008) { 288 289 # use Unicode::MapUTF8 for Perl older than 5.8 290 require Unicode::MapUTF8; 291 if (Unicode::MapUTF8::utf8_supported_charset($charset)) { 292 return Unicode::MapUTF8::from_utf8({ -string => $string, -charset => $charset }); 293 } else { 294 print STDERR "Warning: Conversion from $charset no supported, ' . 'or name not recognised - check perldoc Unicode::MapUTF8\n"; 295 return $string; 296 } 297 } else { 298 299 # good Perl version, just use Encode 300 require Encode; 301 import Encode; 302 my $encoding = Encode::resolve_alias($charset); 303 if (not $encoding) { 304 print STDERR "Warning: Conversion to $charset not supported, or name not recognised - check 'perldoc Encode::Supported'\n"; 305 return $string; 306 } else { 307 308 # converts to $charset, generating HTML NCR's when needed 309 my $octets = $string; 310 $octets = Encode::decode('utf-8', $string) unless utf8::is_utf8($string); 311 return Encode::encode($encoding, $octets, 0);#&Encode::FB_HTMLCREF()); 312 } 313 } 314 } 315 316 ############################################################################### 317 # static 263 318 sub toUtf8 { 264 my $text = shift; 265 266 $text = Unicode::MapUTF8::to_utf8(-string=>$text, -charset=>$Foswiki::cfg{Site}{CharSet}) 267 if $Foswiki::cfg{Site}{CharSet} !~ /^utf-?8$/i; 268 269 return $text; 270 } 271 272 ############################################################################### 273 sub fromUtf8 { 274 my $text = shift; 275 276 $text = Unicode::MapUTF8::from_utf8(-string=>$text, -charset=>$Foswiki::cfg{Site}{CharSet}) 277 if $Foswiki::cfg{Site}{CharSet} !~ /^utf-?8$/i; 278 279 return $text; 280 } 281 282 319 my $string = shift; 320 321 my $charset = $Foswiki::cfg{Site}{CharSet}; 322 return $string if $charset =~ /^utf-?8$/i; 323 324 if ($] < 5.008) { 325 326 # use Unicode::MapUTF8 for Perl older than 5.8 327 require Unicode::MapUTF8; 328 if (Unicode::MapUTF8::utf8_supported_charset($charset)) { 329 return Unicode::MapUTF8::to_utf8({ -string => $string, -charset => $charset }); 330 } else { 331 print STDERR "Warning: Conversion from $charset no supported, or name not recognised - check 'perldoc Unicode::MapUTF8'\n"; 332 return $string; 333 } 334 } else { 335 336 # good Perl version, just use Encode 337 require Encode; 338 import Encode; 339 my $encoding = Encode::resolve_alias($charset); 340 if (not $encoding) { 341 print STDERR "Warning: Conversion to $charset not supported, or name not recognised - check 'perldoc Encode::Supported'\n"; 342 return undef; 343 } else { 344 my $octets = Encode::decode($encoding, $string, &Encode::FB_PERLQQ()); 345 $octets = Encode::encode('utf-8', $octets) unless utf8::is_utf8($octets); 346 return $octets; 347 } 348 } 349 } 283 350 1; 284 351 -
trunk/SoapPlugin/lib/Foswiki/Plugins/SoapPlugin/DEPENDENCIES
r6790 r11723 1 SOAP::Lite,>=0.71,CPAN,Required. install from CPAN2 libxml2,>=2.7.5,,Required. 3 Unicode::MapUTF8,>=1.11,cpan,Required. 1 XML::Parser,>=2.34,CPAN,Required. install from CPAN 2 Cache::Cache,>=1.05,CPAN,Required. install from CPAN 3 libxml2,>=2.7.5,c,Required. -
trunk/SoapPlugin/lib/Foswiki/Plugins/SoapPlugin/MANIFEST
r6759 r11723 4 4 lib/Foswiki/Plugins/SoapPlugin/Core.pm 0644 5 5 lib/Foswiki/Plugins/SoapPlugin.pm 0644 6 lib/SOAP/Constants.pm 0644 7 lib/SOAP/Lite/Deserializer/XMLSchema1999.pm 0644 8 lib/SOAP/Lite/Deserializer/XMLSchema2001.pm 0644 9 lib/SOAP/Lite/Deserializer/XMLSchemaSOAP1_1.pm 0644 10 lib/SOAP/Lite/Deserializer/XMLSchemaSOAP1_2.pm 0644 11 lib/SOAP/Lite/Packager.pm 0644 12 lib/SOAP/Lite.pm 0644 13 lib/SOAP/Lite/Utils.pm 0644 14 lib/SOAP/Packager.pm 0644 15 lib/SOAP/Test.pm 0644 16 lib/SOAP/Transport/HTTP.pm 0644 17 lib/SOAP/Transport/IO.pm 0644 18 lib/SOAP/Transport/LOCAL.pm 0644 19 lib/SOAP/Transport/LOOPBACK.pm 0644 20 lib/SOAP/Transport/MAILTO.pm 0644 21 lib/SOAP/Transport/POP3.pm 0644 22 lib/SOAP/Transport/TCP.pm 0644 23 lib/UDDI/Lite.pm 0644 24 lib/XMLRPC/Lite.pm 0644 25 lib/XMLRPC/Test.pm 0644 26 lib/XMLRPC/Transport/HTTP.pm 0644 27 lib/XMLRPC/Transport/POP3.pm 0644 28 lib/XMLRPC/Transport/TCP.pm 0644 29 soap-lite.patch 0644 6 30 soap-transport-http.patch 0644
Note: See TracChangeset
for help on using the changeset viewer.
