| 1 |
<?xml version="1.0"?> |
|---|
| 2 |
<!DOCTYPE html |
|---|
| 3 |
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
|---|
| 4 |
"DTD/xhtml1-strict.dtd"> |
|---|
| 5 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
|---|
| 6 |
<head> |
|---|
| 7 |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> |
|---|
| 8 |
<meta http-equiv="Content-Style-Type" content="text/css" /> |
|---|
| 9 |
<link rev="MADE" href="mailto:nakahiro@sarion.co.jp" /> |
|---|
| 10 |
<link rel="StyleSheet" href="rubyStyle.css" type="text/css" media="screen" /> |
|---|
| 11 |
<title>Release Notes - SOAP4R</title> |
|---|
| 12 |
</head> |
|---|
| 13 |
<body> |
|---|
| 14 |
|
|---|
| 15 |
<div class="header"> |
|---|
| 16 |
<h1> |
|---|
| 17 |
Release Notes - SOAP4R |
|---|
| 18 |
</h1> |
|---|
| 19 |
|
|---|
| 20 |
<p class="status"> |
|---|
| 21 |
Last modified: December 28, 2001<br /> |
|---|
| 22 |
Created: July 17, 2000 |
|---|
| 23 |
</p> |
|---|
| 24 |
</div> |
|---|
| 25 |
|
|---|
| 26 |
<hr /> |
|---|
| 27 |
|
|---|
| 28 |
<div class="main"> |
|---|
| 29 |
<h2>0. In this document...</h2> |
|---|
| 30 |
|
|---|
| 31 |
<p> |
|---|
| 32 |
This is Release Notes of SOAP4R. |
|---|
| 33 |
</p> |
|---|
| 34 |
|
|---|
| 35 |
<p> |
|---|
| 36 |
Target SOAP4R version: SOAP4R/1.4.2 |
|---|
| 37 |
</p> |
|---|
| 38 |
|
|---|
| 39 |
<ol> |
|---|
| 40 |
<li><a href="#changes">Changes</a></li> |
|---|
| 41 |
<li><a href="#install">Install</a></li> |
|---|
| 42 |
<li><a href="#uninstall">Uninstall</a></li> |
|---|
| 43 |
<li><a href="#whats">What is SOAP4R?</a></li> |
|---|
| 44 |
<li><a href="#dependencies">Dependencies</a></li> |
|---|
| 45 |
<li><a href="#restrictions">Restrictions</a></li> |
|---|
| 46 |
<li><a href="#history">History</a></li> |
|---|
| 47 |
<li><a href="#author">Author</a></li> |
|---|
| 48 |
<li><a href="#copyright">Copyright</a></li> |
|---|
| 49 |
</ol> |
|---|
| 50 |
|
|---|
| 51 |
<h2 id="changes" name="changes">1. Changes</h2> |
|---|
| 52 |
|
|---|
| 53 |
<p> |
|---|
| 54 |
Many changes around Ruby language mapping for SOAP. |
|---|
| 55 |
I replaced DRb's marshalling format with SOAP marshalling and it passed |
|---|
| 56 |
about all unit test packed in DRb package. |
|---|
| 57 |
Only test failed was regards to packet size. |
|---|
| 58 |
You might be able to use SOAP::Marshal.(un|)marshal for serializing objects |
|---|
| 59 |
instead of Marshal.(load|dump). |
|---|
| 60 |
</p> |
|---|
| 61 |
|
|---|
| 62 |
<ul> |
|---|
| 63 |
<li>Illegal decoding of a position-less element after position-ed element. Fixed.</li> |
|---|
| 64 |
<li>Add Rubytype encoding/decoding support: Regexp, Class, Module and Symbol.</li> |
|---|
| 65 |
<li>Added an option of MappingRegistry to raise an exception when unknown Struct. |
|---|
| 66 |
The option is set 'false' by default so that same behaviour as before.</li> |
|---|
| 67 |
</ul> |
|---|
| 68 |
|
|---|
| 69 |
<h2 id="install" name="install">2. Install</h2> |
|---|
| 70 |
|
|---|
| 71 |
<p> |
|---|
| 72 |
Simply, get the archived file and extract it. Then, try; |
|---|
| 73 |
</p> |
|---|
| 74 |
|
|---|
| 75 |
<pre> |
|---|
| 76 |
"ruby install.rb" |
|---|
| 77 |
</pre> |
|---|
| 78 |
|
|---|
| 79 |
<p> |
|---|
| 80 |
Necessary files will be installed to suitable directory. |
|---|
| 81 |
</p> |
|---|
| 82 |
|
|---|
| 83 |
<p> |
|---|
| 84 |
Files in lib/soap directory are SOAP4R library program itself. |
|---|
| 85 |
Followings are redistributed files in redist/. |
|---|
| 86 |
</p> |
|---|
| 87 |
|
|---|
| 88 |
<dl> |
|---|
| 89 |
<dt class="path">date3.rb</dt> |
|---|
| 90 |
<dd>by Funaba-san (<a href="http://www.kt.rim.or.jp/~tadf/ruby-en.html">http://www.kt.rim.or.jp/~tadf/ruby-en.html</a>)</dd> |
|---|
| 91 |
|
|---|
| 92 |
<dt class="path">parsedate3.rb</dt> |
|---|
| 93 |
<dd>by Funaba-san (<a href="http://www.kt.rim.or.jp/~tadf/ruby-en.html">http://www.kt.rim.or.jp/~tadf/ruby-en.html</a>)</dd> |
|---|
| 94 |
|
|---|
| 95 |
<dt class="path">GServer</dt> |
|---|
| 96 |
<dd>by John W. Small: <a href="http://fairfax2.laser.net/~jsmall/rubycorner.html">http://fairfax2.laser.net/~jsmall/rubycorner.html</a></dd> |
|---|
| 97 |
|
|---|
| 98 |
<dt class="path">httpserver.rb</dt> |
|---|
| 99 |
<dd>by Michael Neumann: httpserver.rb in <a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=XML-RPC">[RAA:XML-RPC]</a></dd> |
|---|
| 100 |
|
|---|
| 101 |
<dt class="path">application.rb</dt> |
|---|
| 102 |
<dd>by NaHi: <a href="http://www.jin.gr.jp/~nahi/Ruby/Application/application.rb">http://www.jin.gr.jp/~nahi/Ruby/Application/application.rb</a></dd> |
|---|
| 103 |
|
|---|
| 104 |
<dt class="path">http-access2</dt> |
|---|
| 105 |
<dd>by NaHi: <a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=http-access2">[RAA:http-access2]</a></dd> |
|---|
| 106 |
|
|---|
| 107 |
</dl> |
|---|
| 108 |
|
|---|
| 109 |
<p> |
|---|
| 110 |
Files in archive: |
|---|
| 111 |
</p> |
|---|
| 112 |
|
|---|
| 113 |
<dl> |
|---|
| 114 |
<dt class="path">lib/soap/</dt> |
|---|
| 115 |
<dd>SOAP4R library program.</dd> |
|---|
| 116 |
|
|---|
| 117 |
<dt class="path">test/</dt> |
|---|
| 118 |
<dd>Clients/Server for |
|---|
| 119 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 120 |
Because of no documents or "How-to" things there, |
|---|
| 121 |
test/interopR2/server.cgi is a must RPC Server side sample to check. |
|---|
| 122 |
test/interopR2/client*.rb is a must RPC Client side sample to check. |
|---|
| 123 |
test/interopR2/base.rb includes common definitions for client/server side. |
|---|
| 124 |
</dd> |
|---|
| 125 |
|
|---|
| 126 |
<dt class="path">sample/</dt> |
|---|
| 127 |
<dd>Sample program using SOAP4R.</dd> |
|---|
| 128 |
|
|---|
| 129 |
<dt class="path">sample/apacheClient.rb</dt> |
|---|
| 130 |
<dd>SOAP-RPC client sample. |
|---|
| 131 |
It connects with demonstration server programs stockquote and addressbook in Apache-SOAP. |
|---|
| 132 |
You have to install Apache-SOAP and deploy demostration programs.<br /> |
|---|
| 133 |
To execute; |
|---|
| 134 |
<pre class="path"> |
|---|
| 135 |
./apacheClient.rb http://localhsot:2020/xml-soap/rpcrouter/rpcrouter.jsp |
|---|
| 136 |
</pre> |
|---|
| 137 |
</dd> |
|---|
| 138 |
|
|---|
| 139 |
<dt class="path">sample/RAA/*</dt> |
|---|
| 140 |
<dd>SOAP-RPC client samples. |
|---|
| 141 |
<ul> |
|---|
| 142 |
<li>soap4r.rb, soap4rApp.rb: Ruby program using SOAP4R</li> |
|---|
| 143 |
<li>xmlrpc4r.rb: Ruby program using xmlrpc4r</li> |
|---|
| 144 |
<li>pocketSOAP.js: JScript program using pocketSOAP</li> |
|---|
| 145 |
<li>SOAP::Lite.pl: Perl program using SOAP::Lite for Perl</li> |
|---|
| 146 |
</ul> |
|---|
| 147 |
There programs connect with testing RAA server on www.ruby-lang.org. |
|---|
| 148 |
Since the server is under testing phase so stable operation is not expected.</dd> |
|---|
| 149 |
|
|---|
| 150 |
<dt class="path">redist/</dt> |
|---|
| 151 |
<dd>Redistributed programs which SOAP4R is using. |
|---|
| 152 |
I would appriciate to authors of these programs. |
|---|
| 153 |
</dd> |
|---|
| 154 |
|
|---|
| 155 |
<dt class="path">redist/archive/</dt> |
|---|
| 156 |
<dd>Archives. |
|---|
| 157 |
Follow the term of each archive to use these programs. |
|---|
| 158 |
</dd> |
|---|
| 159 |
</dl> |
|---|
| 160 |
|
|---|
| 161 |
<h2 id="uninstall" name="uninstall">3. Uninstall</h2> |
|---|
| 162 |
|
|---|
| 163 |
<p> |
|---|
| 164 |
Delete created files at installation. |
|---|
| 165 |
</p> |
|---|
| 166 |
|
|---|
| 167 |
<pre> |
|---|
| 168 |
ruby -rrbconfig -e 'include Config; puts CONFIG["sitedir"] + "/" + CONFIG["MAJOR"] + "." + CONFIG["MINOR"]' |
|---|
| 169 |
</pre> |
|---|
| 170 |
|
|---|
| 171 |
<p> |
|---|
| 172 |
should dump the installation root directory. |
|---|
| 173 |
Here, check "soap" directory and filename of files in "redist" directory. |
|---|
| 174 |
</p> |
|---|
| 175 |
|
|---|
| 176 |
<h2 id="whats" name="whats">4. What is SOAP4R?</h2> |
|---|
| 177 |
|
|---|
| 178 |
<p> |
|---|
| 179 |
'SOAP4R' is a Ruby library program to handle |
|---|
| 180 |
<a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 (W3C Note)</a>. |
|---|
| 181 |
</p> |
|---|
| 182 |
|
|---|
| 183 |
<p> |
|---|
| 184 |
Comments, information such as interoperability between SOAP4R and another implementation are welcomed. |
|---|
| 185 |
Feel free sending mail to |
|---|
| 186 |
<a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a>. |
|---|
| 187 |
</p> |
|---|
| 188 |
|
|---|
| 189 |
<h2 id="dependencies" name="dependencies">5. Dependencies</h2> |
|---|
| 190 |
|
|---|
| 191 |
<p> |
|---|
| 192 |
SOAP4R depends on below programs: |
|---|
| 193 |
</p> |
|---|
| 194 |
|
|---|
| 195 |
<ul> |
|---|
| 196 |
<li>SOAP4R is a |
|---|
| 197 |
<a href="http://www.ruby-lang.org">Ruby</a> |
|---|
| 198 |
library program. |
|---|
| 199 |
You have to install Ruby itself. |
|---|
| 200 |
Ruby/1.6 series are required. |
|---|
| 201 |
It does not works on 1.4 series because of class variable.</li> |
|---|
| 202 |
|
|---|
| 203 |
<li>SOAP4R requires a XML processor package installed. |
|---|
| 204 |
For now, one of following XML processor must be installed |
|---|
| 205 |
(SOAP4R automatically detects it in runtime). |
|---|
| 206 |
<ul> |
|---|
| 207 |
<li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=NQXML">NQXML module</a></li> |
|---|
| 208 |
<li><a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=XMLParser">XMLParser module</a></li> |
|---|
| 209 |
</ul></li> |
|---|
| 210 |
</ul> |
|---|
| 211 |
|
|---|
| 212 |
<h2 id="restrictions" name="restrictions">6. Restrictions</h2> |
|---|
| 213 |
|
|---|
| 214 |
<p> |
|---|
| 215 |
The following features of the |
|---|
| 216 |
<a href="http://www.w3.org/TR/SOAP/">SOAP 1.1 (W3C Note)</a> |
|---|
| 217 |
spec are <strong>NOT</strong> currently supported: |
|---|
| 218 |
</p> |
|---|
| 219 |
|
|---|
| 220 |
<ul> |
|---|
| 221 |
<li style="margin-top: 2ex;">SOAP Envelope |
|---|
| 222 |
<ul> |
|---|
| 223 |
<li>SOAP actor attribute</li> |
|---|
| 224 |
<li>SOAP mustUnderstand attribute</li> |
|---|
| 225 |
<li>SOAP Fault Codes</li> |
|---|
| 226 |
</ul></li> |
|---|
| 227 |
<li style="margin-top: 2ex;">SOAP Encoding |
|---|
| 228 |
<ul> |
|---|
| 229 |
<li>encoding/decoding using XML Schema; |
|---|
| 230 |
Only xsi:type in SOAP Encoding is checked</li> |
|---|
| 231 |
</ul></li> |
|---|
| 232 |
<li style="margin-top: 2ex;">Othres |
|---|
| 233 |
<ul> |
|---|
| 234 |
<li>Transport binding except HTTP server and client</li> |
|---|
| 235 |
<li>HTTP Extension Framework (M-POST)</li> |
|---|
| 236 |
</ul></li> |
|---|
| 237 |
</ul> |
|---|
| 238 |
|
|---|
| 239 |
<h2 id="history" name="history">7. History</h2> |
|---|
| 240 |
|
|---|
| 241 |
<dl> |
|---|
| 242 |
<dt>1.4.2 - December 28, 2001</dt> |
|---|
| 243 |
<dd> |
|---|
| 244 |
Many changes around Ruby language mapping for SOAP. |
|---|
| 245 |
I replaced DRb's marshalling format with SOAP marshalling and it passed |
|---|
| 246 |
about all unit test packed in DRb package. |
|---|
| 247 |
Only test failed was regards to packet size. |
|---|
| 248 |
You might be able to use SOAP::Marshal.(un|)marshal for serializing objects |
|---|
| 249 |
instead of Marshal.(load|dump). |
|---|
| 250 |
|
|---|
| 251 |
<ul> |
|---|
| 252 |
<li>Illegal decoding of a position-less element after position-ed element. Fixed.</li> |
|---|
| 253 |
<li>Add Rubytype encoding/decoding support: Regexp, Class, Module and Symbol.</li> |
|---|
| 254 |
<li>Added an option of MappingRegistry to raise an exception when unknown Struct. |
|---|
| 255 |
The option is set 'false' by default so that same behaviour as before.</li> |
|---|
| 256 |
</ul></dd> |
|---|
| 257 |
|
|---|
| 258 |
<dt>1.4.1 - December 7, 2001</dt> |
|---|
| 259 |
<dd>SOAP4R/1.4 contained many bugs (as usual...) |
|---|
| 260 |
1.4.1 is a maintenance release. Some bugs are fixed. |
|---|
| 261 |
Thanks to Michael Neumann. |
|---|
| 262 |
|
|---|
| 263 |
<ul> |
|---|
| 264 |
<li>instance_eval in SOAPStruct#add for adding accessor illegaly overrode important methods for SOAP4R such as name, name= and so on. Removed this instance_eval and rewrote other codes which did depend the code. Thanks to MNeumann for reporting it and giving a suggestion to fix it.</li> |
|---|
| 265 |
<li>Fixed charset handling. Illegal charset was set when automatic XML processor detecting.</li> |
|---|
| 266 |
<li>Removed unused code(self.decode) in element.rb.</li> |
|---|
| 267 |
<li>Illegal constant access when SOAP format error. Fixed.</li> |
|---|
| 268 |
<li>LiteralEncodingNamespace moved to SOAP module.</li> |
|---|
| 269 |
</ul></dd> |
|---|
| 270 |
|
|---|
| 271 |
|
|---|
| 272 |
<dt>1.4 - December 5, 2001</dt> |
|---|
| 273 |
<dd><ul> |
|---|
| 274 |
<li>Datatypes: |
|---|
| 275 |
<ul> |
|---|
| 276 |
<li>XSDFloat: Bug in rounding double float to single float. Fixed.</li> |
|---|
| 277 |
<li>SOAPElement: Added for literal encoding.</li> |
|---|
| 278 |
<li>Removed SOAP encoding functions from baseData. EncondingStyleHandler should decide how to encode SOAP data model. (ie. ASP.NET seems to have its own encoding style.)</li> |
|---|
| 279 |
<li>SOAPHeaderItem: Changed interface for easy use.</li> |
|---|
| 280 |
</ul></li> |
|---|
| 281 |
|
|---|
| 282 |
<li>SOAP Encoding: |
|---|
| 283 |
<ul> |
|---|
| 284 |
<li>Encoding by itself, not using NQXML's tree object model.</li> |
|---|
| 285 |
<li>At last, supported multi-ref encoding!</li> |
|---|
| 286 |
<li>marshal.rb: Marshalling with Envelope and Body. To marshal multi-ref'd object, Body is needed. CAUTION: Not compatible between former implementation.</li> |
|---|
| 287 |
<li>Add EncodingStyleHandlerLiteral and set it to default.</li> |
|---|
| 288 |
<li>Renamed encoding.rb to encodingStyleHandler.rb.</li> |
|---|
| 289 |
<li>Added ASP.NET encoding handler. ASP.NET seems to use literal encoding (by default) but it is easier with this encodingStyleHandler to access the service which is built with ASP.NET.</li> |
|---|
| 290 |
<li>Changed element name escape. |
|---|
| 291 |
<ul> |
|---|
| 292 |
<li>:: <=> \.\.</li> |
|---|
| 293 |
<li>[^a-zA-Z0-9_-] <=> \.[0-F][0-F] |
|---|
| 294 |
</ul> |
|---|
| 295 |
Limitation: Using SOAP4R's RPC function, you cannot use the name which contains '.' for method name, class/struct name, and accessor name. In Ruby world, it should not be a problem I believe.</li> |
|---|
| 296 |
</ul></li> |
|---|
| 297 |
|
|---|
| 298 |
<li>RPC related functions: |
|---|
| 299 |
<ul> |
|---|
| 300 |
<li>Driver: Added 'invoke' method for messaging.</li> |
|---|
| 301 |
<li>Driver: Content of SOAPFault detail element is set in the exception which is thrown from SOAP Node to client application.</li> |
|---|
| 302 |
<li>Processor: Changed Processor.(un|)marshal interface. An instance of NS for parsing/generating XML instance is prepared in parser/generator.</li> |
|---|
| 303 |
<li>mappingRegistry.rb is devided from rpcUtils.rb.</li> |
|---|
| 304 |
</ul></li> |
|---|
| 305 |
</ul></dd> |
|---|
| 306 |
|
|---|
| 307 |
|
|---|
| 308 |
<dt>1.3.8 - October 4, 2001</dt> |
|---|
| 309 |
<dd>Feedback from |
|---|
| 310 |
<a href="http://www.whitemesa.com/interop.htm">SOAPBuilders Interoperability Lab "Round 2"</a> |
|---|
| 311 |
and Michael Neumann. Thanks! |
|---|
| 312 |
|
|---|
| 313 |
<ul> |
|---|
| 314 |
<li>Datatypes: |
|---|
| 315 |
<ul> |
|---|
| 316 |
<li>XSDFloat: Creating float data from junk string such as "123.0junk" was |
|---|
| 317 |
converted to 0.0. It should be avoided. Fixed.</li> |
|---|
| 318 |
<li>XSDFloat: Fixed double -> single rounding code.</li> |
|---|
| 319 |
</ul></li> |
|---|
| 320 |
|
|---|
| 321 |
<li>RPC related functions: |
|---|
| 322 |
<ul> |
|---|
| 323 |
<li>Changed typename <=> NCName strategy. '::' <=> '.'</li> |
|---|
| 324 |
<li>Added mappingRegistry argument to interfaces for SOAP object creation.</li> |
|---|
| 325 |
</ul></li> |
|---|
| 326 |
|
|---|
| 327 |
<li>Others: |
|---|
| 328 |
<ul> |
|---|
| 329 |
<li>Set faultstring '(No faultstring)' to SOAP Fault when empty faultstring element.</li> |
|---|
| 330 |
<li>server.rb: Added mappingRegistry interface.</li> |
|---|
| 331 |
<li>marshal.rb: Create NCName from typename.</li> |
|---|
| 332 |
</ul></li> |
|---|
| 333 |
</ul></dd> |
|---|
| 334 |
|
|---|
| 335 |
|
|---|
| 336 |
<dt>1.3.7 - August 24, 2001</dt> |
|---|
| 337 |
<dd>Feedback from |
|---|
| 338 |
<a href="http://www.whitemesa.com/interop.htm">SOAPBuilders Interoperability Lab "Round 2"</a> |
|---|
| 339 |
and Michael Neumann. Thanks! |
|---|
| 340 |
|
|---|
| 341 |
<ul> |
|---|
| 342 |
<li>Datatypes: |
|---|
| 343 |
<ul> |
|---|
| 344 |
<li>All datatypes try to keep nil correctly.</li> |
|---|
| 345 |
<li>XSDInt/Integer/Long: to_i -> Integer() to detect format error.</li> |
|---|
| 346 |
<li>XSDDateTime, XSDDate, XSDTime: Add trailing 'Z' to indicate UTC.</li> |
|---|
| 347 |
<li>SOAPStruct: Accept untyped struct.</li> |
|---|
| 348 |
<li>Map(Hash): Let <item> untyped.</li> |
|---|
| 349 |
<li>Apache allows only 'item' in Map type.</li> |
|---|
| 350 |
</ul></li> |
|---|
| 351 |
|
|---|
| 352 |
<li>Stream handler: |
|---|
| 353 |
<ul> |
|---|
| 354 |
<li>Removed MPOST support.</li> |
|---|
| 355 |
<li>ECONNRESET was not caught. Fixed.</li> |
|---|
| 356 |
<li>Added timeout support.</li> |
|---|
| 357 |
</ul></li> |
|---|
| 358 |
|
|---|
| 359 |
<li>Others: |
|---|
| 360 |
<ul> |
|---|
| 361 |
<li>Changed using URI library: URb -> URI; following its name change.</li> |
|---|
| 362 |
<li>Added NQXML/1.1.0 support. A XMLDecl now recognized as a XMLDecl, not a PI.</li> |
|---|
| 363 |
</ul></li> |
|---|
| 364 |
</ul></dd> |
|---|
| 365 |
|
|---|
| 366 |
<dt>1.3.6 - July 27, 2001</dt> |
|---|
| 367 |
<dd>Many feedbacks from Michael Neumann. Thanks! |
|---|
| 368 |
|
|---|
| 369 |
<ul> |
|---|
| 370 |
<li>hexBinary type: Added.</li> |
|---|
| 371 |
<li>nil type: Should not be xsd:nil but xsi:nil.</li> |
|---|
| 372 |
<li>Added StandaloneServer implementation. Thanks to Michael Neumann!</li> |
|---|
| 373 |
<li>Illegal parsing of XMLDecl. Fixed.</li> |
|---|
| 374 |
<li>RPC's 'inout' param was not supported. Fixed. Thanks to Michael Neumann!</li> |
|---|
| 375 |
<li>URb::Generic#path returns '' when abs_path is empty (such as http://foo). |
|---|
| 376 |
Added checking code.</li> |
|---|
| 377 |
<li>Use http-access2 instead of original HTTP implementation. http-access2 supports HTTP/1.1's persistent connection.</li> |
|---|
| 378 |
</ul></dd> |
|---|
| 379 |
|
|---|
| 380 |
<dt>1.3.5 - July 14, 2001</dt> |
|---|
| 381 |
<dd>Many feedbacks from Michael Neumann. |
|---|
| 382 |
I much appreciate valuable comments to him. |
|---|
| 383 |
Thanks! |
|---|
| 384 |
|
|---|
| 385 |
<ul> |
|---|
| 386 |
<li>Changed using URI library: uri -> URb.</li> |
|---|
| 387 |
<li>Types changed: |
|---|
| 388 |
<ul> |
|---|
| 389 |
<li>All: Triming data except XSDString before parsing it.</li> |
|---|
| 390 |
<li>String: Regexp for XML Char check did not work under $KCODE = 'UTF8' condition. Fixed.</li> |
|---|
| 391 |
<li>Nil: 2001xsd:nil must not accept a value '1'. 1999xsd:null must not accept a value 'true' because these are not a boolean but only a flag for nil. Fixed.</li> |
|---|
| 392 |
</ul> |
|---|
| 393 |
</li> |
|---|
| 394 |
|
|---|
| 395 |
<li>Supported XML parser: |
|---|
| 396 |
<ul> |
|---|
| 397 |
<li>Added automatic CES conversion support for NQXMLParser. |
|---|
| 398 |
(Depends on uconv module). |
|---|
| 399 |
Set $KCODE for regexps used in NQXML parser.</li> |
|---|
| 400 |
<li>Moved SOAPNQXML*Parser to nqxmlparser.rb.</li> |
|---|
| 401 |
</ul> |
|---|
| 402 |
</li> |
|---|
| 403 |
|
|---|
| 404 |
<li>RPC related functions changed:</li> |
|---|
| 405 |
<ul> |
|---|
| 406 |
<li>Added marshalling/unmarshalling Ruby's object using SOAP Encoding.</li> |
|---|
| 407 |
<li>Parallelize of signatures of 'addMethod': proxy.rb <-> rpcRouter.rb, driver.rb <-> cgistub.rb.</li> |
|---|
| 408 |
<li>Void return if 'retval' is not defined.</li> |
|---|
| 409 |
<li>Added SOAP's Long type to default mapping table.</li> |
|---|
| 410 |
</ul> |
|---|
| 411 |
</li> |
|---|
| 412 |
</ul></dd> |
|---|
| 413 |
|
|---|
| 414 |
<dt>1.3.4.2 - July 11, 2001</dt> |
|---|
| 415 |
<dd>SOAP4R/1.3.4 was once packed in July 10, 2001. |
|---|
| 416 |
But, thanks to MNeumann and knu, |
|---|
| 417 |
I found I had forgotten to pack 'redist' directory with it. |
|---|
| 418 |
I added some fix from developing version and repack it as 1.3.4.2. |
|---|
| 419 |
Sorry for frequently release... |
|---|
| 420 |
<br/><br/> |
|---|
| 421 |
|
|---|
| 422 |
Feedback from |
|---|
| 423 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 424 |
and Michael Neumann. Thanks! |
|---|
| 425 |
|
|---|
| 426 |
<ul> |
|---|
| 427 |
<li>Added in 1.3.4.2: |
|---|
| 428 |
<ul> |
|---|
| 429 |
<li>Type Decimal: Silly bug fixed. 0.0001 was converted to 0.1</li> |
|---|
| 430 |
<li>CGIStub returns HTTP status 500 when returning SOAP Fault. |
|---|
| 431 |
Returned 200 because I don't like this spec., but SOAP/1.2 W3C WD |
|---|
| 432 |
9 July 2001 have adopted it. Hmm...</li> |
|---|
| 433 |
<li>RPC client(driver.rb): Exception#set_backtrace was omitted when transmitting exception by SOAP Fault.</li> |
|---|
| 434 |
</ul> |
|---|
| 435 |
</li> |
|---|
| 436 |
<li>Types changed: |
|---|
| 437 |
<ul> |
|---|
| 438 |
<li>Array: Incomplete sparse array support. Fixed.</li> |
|---|
| 439 |
<li>Date: Added.</li> |
|---|
| 440 |
<li>Time: Added.</li> |
|---|
| 441 |
<li>DateTime: Added precision of time support.</li> |
|---|
| 442 |
<li>String: Default data should not be nil but ''.</li> |
|---|
| 443 |
<li>Nil: Attribute value of xsi:nil might be '1' instead of 'true'. Fixed.</li> |
|---|
| 444 |
</ul> |
|---|
| 445 |
</li> |
|---|
| 446 |
|
|---|
| 447 |
<li>Supported XML parser: |
|---|
| 448 |
<ul> |
|---|
| 449 |
<li>Added SOAPXMLParser and SOAPSAXDriver for XMLParser which uses expat. |
|---|
| 450 |
You can get the module from RAA: <a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=XMLParser">XMLParser module</a>.<br/> |
|---|
| 451 |
To use XMLParser -> add "require 'soap/xmlparser'".<br/> |
|---|
| 452 |
To use SAX driver of XMLParser -> add "require 'soap/saxdriver'".<br/> |
|---|
| 453 |
To use NQXMLParser -> nothing to do.<br/> |
|---|
| 454 |
FYI: |
|---|
| 455 |
<ul> |
|---|
| 456 |
<li>XMLParser version is faster than others</li> |
|---|
| 457 |
<li>SAXDriver version is extremely slow</li> |
|---|
| 458 |
<li>NQXMLParser version is somewhat slower than XMLParser version</li> |
|---|
| 459 |
<li>XMLParser is a Ruby extension module; To use it, you must compile and install it.</li> |
|---|
| 460 |
<li>So far, automatic code conversion support is for XMLParser and SAXDriver. See below.</li> |
|---|
| 461 |
</ul> |
|---|
| 462 |
</li> |
|---|
| 463 |
<li>Added automatic CES conversion support: UTF-8 <-> EUC, SJIS. |
|---|
| 464 |
Requires Uconv module. Works with XMLParser module only now.</li> |
|---|
| 465 |
<li>Added XMLDecl for CES.</li> |
|---|
| 466 |
</ul> |
|---|
| 467 |
</ul></dd> |
|---|
| 468 |
|
|---|
| 469 |
<dt>1.3.3 - July 4, 2001</dt> |
|---|
| 470 |
<dd>Feedback from |
|---|
| 471 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 472 |
and Michael Neumann. Thanks! |
|---|
| 473 |
<ul> |
|---|
| 474 |
<li>Added SOAP4R Installer by Michael Neumann. Thanks!</li> |
|---|
| 475 |
<li>Types changed: |
|---|
| 476 |
<ul> |
|---|
| 477 |
<li>Boolean: Accepts 1 and 0 in addition to true and falue.</li> |
|---|
| 478 |
<li>Float: handles single-precision 32-bit floating point. |
|---|
| 479 |
Ruby's float is doule-precision.</li> |
|---|
| 480 |
<li>Double: Added. Mapped to Ruby's Float.</li> |
|---|
| 481 |
<li>DateTime: Added TZ support.</li> |
|---|
| 482 |
<li>Long: Added.</li> |
|---|
| 483 |
<li>Int: Changed class hierarchy; derived from Long now.</li> |
|---|
| 484 |
<li>Array: Added 'position' and 'offset' support.</li> |
|---|
| 485 |
<li>Array: Added M-D Array support.</li> |
|---|
| 486 |
<li>Decimal: Added but it's incomplete now.</li> |
|---|
| 487 |
</ul> |
|---|
| 488 |
</li> |
|---|
| 489 |
<li>Illegal error message when a type not found in SOAP-ENC.</li> |
|---|
| 490 |
<li>Tries to transmit \r safely. To be checked...</li> |
|---|
| 491 |
<li>Parse Fault items like 'faultcode' as same as Body ie. href/id.</li> |
|---|
| 492 |
<li>rpcUtils.rb was completely re-written. |
|---|
| 493 |
<ul> |
|---|
| 494 |
<li>Added mappingRegistry interface.</li> |
|---|
| 495 |
<li>Changed soap2obj and obj2soap's interface.</li> |
|---|
| 496 |
<li>Bignum might be int or integer. It's dependent on platform. |
|---|
| 497 |
Changed to check range -2147483648~+2147483647 itself.</li> |
|---|
| 498 |
<li>ary2md: Added. Converting Array ((of Array)...) to M-D Array.</li> |
|---|
| 499 |
<li>struct2obj: Illegal dependency on ordering of Struct#members. Fixed.</li> |
|---|
| 500 |
<li>Ruby's Array should be converted to SOAP's Array of anyType. Fixed.</li> |
|---|
| 501 |
</ul> |
|---|
| 502 |
</li> |
|---|
| 503 |
<li>Dump HTTP header even when an error was raised.</li> |
|---|
| 504 |
</ul></dd> |
|---|
| 505 |
|
|---|
| 506 |
<dt>1.3.2 - June 21, 2001</dt> |
|---|
| 507 |
<dd>Feedback from |
|---|
| 508 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 509 |
|
|---|
| 510 |
<ul> |
|---|
| 511 |
<li>"nil='1'" should be "nil='true'" in 2001 schema |
|---|
| 512 |
whereas "null='1'" in 1999 schema. Fixed.</li> |
|---|
| 513 |
<li>SOAP Array was not typed with xsi:type.</li> |
|---|
| 514 |
<li>Fixed serialization root handling algorithm.</li> |
|---|
| 515 |
<li>Supported kind of SOAP-ENC:String style typed element.</li> |
|---|
| 516 |
<li>Default namespace was not derived to child element. Fixed.</li> |
|---|
| 517 |
<li>Support default encodingStyle.</li> |
|---|
| 518 |
<li>Added support for void type (SOAP::RPCUtils::SOAPVoid).</li> |
|---|
| 519 |
</ul></dd> |
|---|
| 520 |
|
|---|
| 521 |
<dt>1.3.1 - May 30, 2001</dt> |
|---|
| 522 |
<dd>Feedback from |
|---|
| 523 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 524 |
|
|---|
| 525 |
<ul> |
|---|
| 526 |
<li>Heading and trailing whtespaces in Base64 string could not be processed. Fixed.</li> |
|---|
| 527 |
<li>Illegal typeNamespace of SOAP's base64 type. Fixed.</li> |
|---|
| 528 |
<li>Added NaN, INF, -INF support of Float type.</li> |
|---|
| 529 |
<li>Extracted xsd:1999 type support to XMLSchemaDatatypes1999.rb. Use it with 'require "soap/XMLSchemaDatatypes1999"'.</li> |
|---|
| 530 |
<li>Added 'root' attribute support.</li> |
|---|
| 531 |
<li>Return status 500 when Fault.</li> |
|---|
| 532 |
</ul></dd> |
|---|
| 533 |
|
|---|
| 534 |
<dt>1.3.0 - May 20, 2001</dt> |
|---|
| 535 |
<dd><ul> |
|---|
| 536 |
<li>Adopted |
|---|
| 537 |
<a href="http://www.ruby-lang.org/en/raa-list.rhtml?name=NQXML">NQXML module</a> |
|---|
| 538 |
instead of XMLParser module extensively. |
|---|
| 539 |
(You can implement your SOAP parser with XMLParser module. |
|---|
| 540 |
See the last part of lib/soap/parser.rb) |
|---|
| 541 |
<ul> |
|---|
| 542 |
<li>Use NQXML's streamingParser or tokenizer instead of XMLParser's DOMParser for unmarshalling.</li> |
|---|
| 543 |
<li>Use NQXML's document instead of XMLParser's DOM for marshalling.</li> |
|---|
| 544 |
</ul></li> |
|---|
| 545 |
<li>Passed major(?) part of inteoperability test in |
|---|
| 546 |
<a href="http://www.xmethods.net/ilab/">`SOAPBuilders Interoperability Lab.'</a> |
|---|
| 547 |
See test/interop/README.txt.</li> |
|---|
| 548 |
<li>Changed module namespace. SOAPFoo -> SOAP::Foo.</li> |
|---|
| 549 |
<li>Added float datatype support.</li> |
|---|
| 550 |
<li>Changed dateTime marshalling format. No timezone was added to marshalled string because SOAP4R does not support timezone now.</li> |
|---|
| 551 |
</ul></dd> |
|---|
| 552 |
|
|---|
| 553 |
<dt>1.2.0 - March 30, 2001</dt> |
|---|
| 554 |
<dd>Checked interoperability with |
|---|
| 555 |
<a href="http://xml.apache.org/soap/">Apache-SOAP</a>, |
|---|
| 556 |
<a href="http://www.pocketsoap.com">pocketSOAP/0.91</a>, |
|---|
| 557 |
<a href="http://www.geocities.com/paulclinger/soap.html">SOAP::Lite for Perl</a>, |
|---|
| 558 |
and <a href="http://www.develop.com/soap/">SOAP/Perl/0.28</a>. |
|---|
| 559 |
It seems to work good except SOAP/Perl/0.28. |
|---|
| 560 |
|
|---|
| 561 |
<ul> |
|---|
| 562 |
<li>Added href/id unmarshalling support. |
|---|
| 563 |
(href/id marshalling has not been supported yet)</li> |
|---|
| 564 |
<li>Added SOAP's base64 type support.</li> |
|---|
| 565 |
<li>SOAPTimeInstant -> SOAPDateTime. Following XML Schema PR.</li> |
|---|
| 566 |
<li>SOAPStruct can have multiple accessor which have same name. |
|---|
| 567 |
Should I separate it from original SOAPStruct?</li> |
|---|
| 568 |
<li>Unknown attribute in Header Item raised an exception. Omitted.</li> |
|---|
| 569 |
<li>Router can handle methods which belong to different namespace.</li> |
|---|
| 570 |
<li>Added an option to allow unqualified SOAP element.</li> |
|---|
| 571 |
<li>Added Apache's Map type support. Ruby's Hash are mapped to it now. |
|---|
| 572 |
(Ruby's Hash marshalled by 1.1 processor in the old way can be unmarshalled, |
|---|
| 573 |
but 1.2 processor marshals it in the new way and 1.1 processor does not |
|---|
| 574 |
unmarshals it into Hash. Incompatibility between SOAP4R/1.2 and 1.1)</li> |
|---|
| 575 |
<li>Unknown type 'unknown:SOAPStruct' was incorrectly unmarshalled into SOAPStruct. Fixed.</li> |
|---|
| 576 |
<li>Added utility methods map! and members to SOAPArray and SOAPStruct.</li> |
|---|
| 577 |
<li>Added methods request, response, and fault to SOAPBody.</li> |
|---|
| 578 |
</ul></dd> |
|---|
| 579 |
|
|---|
| 580 |
<dt>1.1.0 - March 23, 2001</dt> |
|---|
| 581 |
<dd>Made many changes. |
|---|
| 582 |
Since it is tested only for my limited use, please be careful to use. |
|---|
| 583 |
Any comments especially "cannot connect to XXX implementation" are welcomed. |
|---|
| 584 |
Feel free sending mail to |
|---|
| 585 |
<a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a>. |
|---|
| 586 |
|
|---|
| 587 |
<ul> |
|---|
| 588 |
<li>Added RPC server support.</li> |
|---|
| 589 |
<li>Divided RPC client/server implementation from core.</li> |
|---|
| 590 |
<li>Added Date, Hash type support. (Unknown type is converted to Struct as usual)</li> |
|---|
| 591 |
<li>Adopted Date in date3.rb by Funaba-san instead of Time as TimeInstant.</li> |
|---|
| 592 |
<li>Many encoding/decoding bugs around SOAPArray and SOAPStruct were fixed.</li> |
|---|
| 593 |
</ul></dd> |
|---|
| 594 |
|
|---|
| 595 |
<dt>1.0.2 - November 11, 2000</dt> |
|---|
| 596 |
<dd>Since the previous package dated, refreshes some points. |
|---|
| 597 |
<ul> |
|---|
| 598 |
<li>Ruby: ruby 1.6.x</li> |
|---|
| 599 |
<li>uri.rb: 4.22</li> |
|---|
| 600 |
<li>sample: xml-soap/2.0</li> |
|---|
| 601 |
</ul></dd> |
|---|
| 602 |
|
|---|
| 603 |
<dt>1.0.1 - July 27, 2000</dt> |
|---|
| 604 |
<dd>Handles SOAP/1.1 arrays. |
|---|
| 605 |
1.0.0 cannot handles SOAP/1.1 arrays... |
|---|
| 606 |
Bare in mind there still be many |
|---|
| 607 |
<a href="#restrictions">restrictions</a> |
|---|
| 608 |
around SOAP arrays.</dd> |
|---|
| 609 |
|
|---|
| 610 |
<dt>1.0.0 - July 17, 2000</dt> |
|---|
| 611 |
<dd>It is the initial released version of SOAP4R. :-)</dd> |
|---|
| 612 |
</dl> |
|---|
| 613 |
|
|---|
| 614 |
<h2 id="author" name="author">8. Author</h2> |
|---|
| 615 |
|
|---|
| 616 |
<dl> |
|---|
| 617 |
<dt>Name</dt> |
|---|
| 618 |
<dd>NAKAMURA, Hiroshi (aka NaHi or nakahiro)</dd> |
|---|
| 619 |
|
|---|
| 620 |
<dt>E-mail</dt> |
|---|
| 621 |
<dd><a href="mailto:nakahiro@sarion.co.jp" class="path">nakahiro@sarion.co.jp</a></dd> |
|---|
| 622 |
|
|---|
| 623 |
<dt>URL</dt> |
|---|
| 624 |
<dd><a href="http://www.jin.gr.jp/~nahi/" class="path">http://www.jin.gr.jp/~nahi/</a> (Japanese)</dd> |
|---|
| 625 |
</dl> |
|---|
| 626 |
|
|---|
| 627 |
<h2 id="copyright" name="copyright">9. Copyright</h2> |
|---|
| 628 |
|
|---|
| 629 |
<p style="text-align: center;"> |
|---|
| 630 |
SOAP4R<br /> |
|---|
| 631 |
Copyright © 2000, 2001 NAKAMURA, Hiroshi. |
|---|
| 632 |
</p> |
|---|
| 633 |
|
|---|
| 634 |
<p> |
|---|
| 635 |
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
|---|
| 636 |
</p> |
|---|
| 637 |
|
|---|
| 638 |
<p> |
|---|
| 639 |
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|---|
| 640 |
See the GNU General Public License(the file named `COPYING') for more details. |
|---|
| 641 |
</p> |
|---|
| 642 |
|
|---|
| 643 |
<p> |
|---|
| 644 |
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|---|
| 645 |
</p> |
|---|
| 646 |
|
|---|
| 647 |
</div> |
|---|
| 648 |
|
|---|
| 649 |
<hr /> |
|---|
| 650 |
|
|---|
| 651 |
<div class="footer"> |
|---|
| 652 |
<address> |
|---|
| 653 |
<a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R/">SOAP4R</a>.<br /> |
|---|
| 654 |
Copyright © 2000, 2001 |
|---|
| 655 |
<a href="http://www.jin.gr.jp/~nahi/">NAKAMURA, Hiroshi</a>. |
|---|
| 656 |
</address> |
|---|
| 657 |
</div> |
|---|
| 658 |
</body> |
|---|
| 659 |
</html> |
|---|